// $ANTLR 3.0 ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g 2009-03-17 22:32:09

package org.eclipsecon.dui.dsl.swt.parser;

import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.emf.ecore.EObject;

import org.openarchitectureware.xtext.parser.impl.AntlrUtil;
import org.openarchitectureware.xtext.XtextFile;
import org.openarchitectureware.xtext.parser.impl.EcoreModelFactory;
import org.openarchitectureware.xtext.parser.ErrorMsg;
import org.openarchitectureware.xtext.parser.model.ParseTreeManagerNeu;
import org.openarchitectureware.xtext.parser.parsetree.Node;

import org.eclipsecon.dui.dsl.swt.MetaModelRegistration;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class swtParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "'composite'", "'['", "'|'", "']'", "'('", "'layout'", "':'", "'layoutData'", "'bgColor'", "'fgColor'", "'font'", "')'", "'{'", "'}'", "','", "'button'", "'onClick'", "'label'", "'template'", "'text'", "'gridLayout'", "'equalWidth'", "'wMargin'", "'='", "'hMargin'", "'gridData'", "'wHint'", "'hHint'", "'hSpan'", "'vSpan'", "'grabHSpace'", "'grabVSpace'", "'beginning'", "'center'", "'end'", "'fill'", "'default'", "'border'", "'single'", "'multi'", "'check'", "'radio'", "'push'", "'toggle'", "'password'", "'readOnly'", "'separator'", "'bold'", "'italic'", "'normal'", "'bundle'", "'class'", "'.'", "'combo'", "'px'"
    };
    public static final int RULE_ID=4;
    public static final int RULE_STRING=6;
    public static final int RULE_INT=5;
    public static final int RULE_WS=7;
    public static final int RULE_SL_COMMENT=9;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=8;

        public swtParser(TokenStream input) {
            super(input);
            ruleMemo = new HashMap[114+1];
         }
        

    public String[] getTokenNames() { return tokenNames; }
    public String getGrammarFileName() { return "..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g"; }



    	private Token getLastToken() {
    		return input.LT(-1);
    	}

    	protected Object convert(Object arg) {
    		if (arg instanceof org.antlr.runtime.Token) {
    			Token t = (Token) arg;
    			String s = t.getText();
    			if (t.getType() == swtLexer.RULE_ID && s.startsWith("^")) {
    				return s.substring(1);
    			} else if (t.getType()==swtLexer.RULE_STRING) {
    				return s.substring(1,s.length()-1);
    			} else if (t.getType()==swtLexer.RULE_INT) {
    				return Integer.valueOf(s);
    			}
    			return s;
    		}
    		return arg;
    	}


    	private EcoreModelFactory factory = new EcoreModelFactory(MetaModelRegistration.getEPackage());
        private ParseTreeManagerNeu ptm = new ParseTreeManagerNeu();
    	private XtextFile xtextfile = MetaModelRegistration.getXtextFile();
    	
    	{
    			factory.addImport("", "http://eclipsecon.org/2009/dui");
    		
    	}

    	public ParseTreeManagerNeu getResult() {
    		return ptm;
    	}

    	private List<ErrorMsg> errors = new ArrayList<ErrorMsg>();
    	public List<ErrorMsg> getErrors() {
    		return errors;
    	}

    	@Override
    	public void reportError(RecognitionException e) {
    		String msg = super.getErrorMessage(e,tokenNames);
    		errors.add(AntlrUtil.create(msg,e,tokenNames));
    		ptm.addError(msg, e);
    		// This doesn't work. ANTLR may simply report an superfluous token. In that case,
    		// two nodes will be finished instead of one.
    		// ptm.ruleFinished(null, end());
    	}

        private boolean skipCurrentToken;
        
    	@Override
    	protected boolean recoverFromMismatchedElement(IntStream arg0, RecognitionException arg1, BitSet arg2) {
    		skipCurrentToken = true;
    		return super.recoverFromMismatchedElement(arg0, arg1, arg2);
    	}



    // $ANTLR start parse
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:102:1: parse returns [Node r] : result= ruleMModel EOF ;
    public Node parse() throws RecognitionException {
        Node r = null;
        int parse_StartIndex = input.index();
        EObject result = null;


        try {
            if ( backtracking>0 && alreadyParsedRule(input, 1) ) { return r; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:103:3: (result= ruleMModel EOF )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:103:3: result= ruleMModel EOF
            {
            pushFollow(FOLLOW_ruleMModel_in_parse67);
            result=ruleMModel();
            _fsp--;
            if (failed) return r;
            if ( backtracking==0 ) {

              if (result != null)
                ptm.setModelElement(result);
              r = ptm.getCurrent();
              ptm.ruleFinished(result);
            }
            match(input,EOF,FOLLOW_EOF_in_parse78); if (failed) return r;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 1, parse_StartIndex); }
        }
        return r;
    }
    // $ANTLR end parse


    // $ANTLR start ruleMModel
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:113:1: ruleMModel returns [EObject result] : ( (temp_MComposite= ruleMComposite ) (temp_Template= ruleTemplate )* ) ;
    public EObject ruleMModel() throws RecognitionException {
        EObject result = null;
        int ruleMModel_StartIndex = input.index();
        EObject temp_MComposite = null;

        EObject temp_Template = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 2) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:116:4: ( ( (temp_MComposite= ruleMComposite ) (temp_Template= ruleTemplate )* ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:116:4: ( (temp_MComposite= ruleMComposite ) (temp_Template= ruleTemplate )* )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MModel");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:119:1: ( (temp_MComposite= ruleMComposite ) (temp_Template= ruleTemplate )* )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:119:2: (temp_MComposite= ruleMComposite ) (temp_Template= ruleTemplate )*
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:119:2: (temp_MComposite= ruleMComposite )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:119:3: temp_MComposite= ruleMComposite
            {
            if ( backtracking==0 ) {
              ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(1)).eContents().get(1)).eContents().get(0)));
            }
            pushFollow(FOLLOW_ruleMComposite_in_ruleMModel107);
            temp_MComposite=ruleMComposite();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              if (temp_MComposite != null) {
                hasContent = true;
                ptm.setModelElement(temp_MComposite);
                factory.set(result,"rootComposite",convert(temp_MComposite),false);
                ptm.ruleFinished(temp_MComposite);
              } else {
                ptm.destroyNode();
              }

            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:131:1: (temp_Template= ruleTemplate )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==28) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:131:2: temp_Template= ruleTemplate
            	    {
            	    if ( backtracking==0 ) {
            	      ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(1)).eContents().get(1)).eContents().get(1)));
            	    }
            	    pushFollow(FOLLOW_ruleTemplate_in_ruleMModel118);
            	    temp_Template=ruleTemplate();
            	    _fsp--;
            	    if (failed) return result;
            	    if ( backtracking==0 ) {
            	      if (temp_Template != null) {
            	        hasContent = true;
            	        ptm.setModelElement(temp_Template);
            	        factory.add(result,"templates",convert(temp_Template),false);
            	        ptm.ruleFinished(temp_Template);
            	      } else {
            	        ptm.destroyNode();
            	      }

            	    }

            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 2, ruleMModel_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMModel


    // $ANTLR start ruleMComposite
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:150:1: ruleMComposite returns [EObject result] : ( ( 'composite' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_MControl= ruleMControl )* ( '}' ) ) ;
    public EObject ruleMComposite() throws RecognitionException {
        EObject result = null;
        int ruleMComposite_StartIndex = input.index();
        Enumerator temp_MSWT = null;

        EObject temp_MLayout = null;

        EObject temp_MLayoutData = null;

        EObject temp_MColor = null;

        EObject temp_MFont = null;

        EObject temp_MControl = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 3) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:153:4: ( ( ( 'composite' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_MControl= ruleMControl )* ( '}' ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:153:4: ( ( 'composite' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_MControl= ruleMControl )* ( '}' ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MComposite");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:156:1: ( ( 'composite' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_MControl= ruleMControl )* ( '}' ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:156:2: ( 'composite' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_MControl= ruleMControl )* ( '}' )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:156:2: ( 'composite' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:156:3: 'composite'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,10,FOLLOW_10_in_ruleMComposite158); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:162:1: ( RULE_ID )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==RULE_ID) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:162:2: RULE_ID
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMComposite166); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(1)));
                        factory.set(result,"id",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:172:1: ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==11) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:172:2: ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:172:2: ( '[' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:172:3: '['
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,11,FOLLOW_11_in_ruleMComposite176); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:178:1: (temp_MSWT= ruleMSWT )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:178:2: temp_MSWT= ruleMSWT
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    }
                    pushFollow(FOLLOW_ruleMSWT_in_ruleMComposite186);
                    temp_MSWT=ruleMSWT();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_MSWT != null) {
                        hasContent = true;
                        factory.add(result,"style",convert(temp_MSWT),false);
                        ptm.ruleFinished(temp_MSWT);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:189:1: ( ( '|' ) (temp_MSWT= ruleMSWT ) )*
                    loop3:
                    do {
                        int alt3=2;
                        int LA3_0 = input.LA(1);

                        if ( (LA3_0==12) ) {
                            alt3=1;
                        }


                        switch (alt3) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:189:2: ( '|' ) (temp_MSWT= ruleMSWT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:189:2: ( '|' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:189:3: '|'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,12,FOLLOW_12_in_ruleMComposite195); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:195:1: (temp_MSWT= ruleMSWT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:195:2: temp_MSWT= ruleMSWT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(1)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMSWT_in_ruleMComposite205);
                    	    temp_MSWT=ruleMSWT();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MSWT != null) {
                    	        hasContent = true;
                    	        factory.add(result,"style",convert(temp_MSWT),false);
                    	        ptm.ruleFinished(temp_MSWT);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop3;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:207:1: ( ']' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:207:2: ']'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,13,FOLLOW_13_in_ruleMComposite216); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(2)).eContents().get(3)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:214:1: ( ( '(' ) ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==14) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:214:2: ( '(' ) ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:214:2: ( '(' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:214:3: '('
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,14,FOLLOW_14_in_ruleMComposite227); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:220:1: ( ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) ) | ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )*
                    loop5:
                    do {
                        int alt5=6;
                        switch ( input.LA(1) ) {
                        case 15:
                            {
                            alt5=1;
                            }
                            break;
                        case 17:
                            {
                            alt5=2;
                            }
                            break;
                        case 18:
                            {
                            alt5=3;
                            }
                            break;
                        case 19:
                            {
                            alt5=4;
                            }
                            break;
                        case 20:
                            {
                            alt5=5;
                            }
                            break;

                        }

                        switch (alt5) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:220:2: ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:220:2: ( ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:220:3: ( 'layout' ) ( ':' ) (temp_MLayout= ruleMLayout )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:220:3: ( 'layout' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:220:4: 'layout'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,15,FOLLOW_15_in_ruleMComposite236); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:226:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:226:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMComposite243); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:232:1: (temp_MLayout= ruleMLayout )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:232:2: temp_MLayout= ruleMLayout
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMLayout_in_ruleMComposite253);
                    	    temp_MLayout=ruleMLayout();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MLayout != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MLayout);
                    	        factory.set(result,"layout",convert(temp_MLayout),false);
                    	        ptm.ruleFinished(temp_MLayout);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:245:1: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:245:1: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:245:2: ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:245:2: ( 'layoutData' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:245:3: 'layoutData'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,17,FOLLOW_17_in_ruleMComposite266); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:251:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:251:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMComposite273); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:257:1: (temp_MLayoutData= ruleMLayoutData )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:257:2: temp_MLayoutData= ruleMLayoutData
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMLayoutData_in_ruleMComposite283);
                    	    temp_MLayoutData=ruleMLayoutData();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MLayoutData != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MLayoutData);
                    	        factory.set(result,"layoutdata",convert(temp_MLayoutData),false);
                    	        ptm.ruleFinished(temp_MLayoutData);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 3 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:270:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:270:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:270:2: ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:270:2: ( 'bgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:270:3: 'bgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,18,FOLLOW_18_in_ruleMComposite296); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:276:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:276:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMComposite303); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:282:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:282:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMComposite313);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"background",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 4 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:295:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:295:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:295:2: ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:295:2: ( 'fgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:295:3: 'fgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,19,FOLLOW_19_in_ruleMComposite326); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:301:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:301:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMComposite333); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:307:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:307:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMComposite343);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"foreground",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 5 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:320:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:320:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:320:2: ( 'font' ) ( ':' ) (temp_MFont= ruleMFont )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:320:2: ( 'font' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:320:3: 'font'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,20,FOLLOW_20_in_ruleMComposite356); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(4)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:326:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:326:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMComposite363); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(4)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:332:1: (temp_MFont= ruleMFont )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:332:2: temp_MFont= ruleMFont
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(4)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMFont_in_ruleMComposite373);
                    	    temp_MFont=ruleMFont();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MFont != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MFont);
                    	        factory.set(result,"font",convert(temp_MFont),false);
                    	        ptm.ruleFinished(temp_MFont);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop5;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:346:1: ( ')' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:346:2: ')'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,21,FOLLOW_21_in_ruleMComposite386); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:353:1: ( '{' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:353:2: '{'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,22,FOLLOW_22_in_ruleMComposite396); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(4)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:359:1: (temp_MControl= ruleMControl )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==RULE_ID||LA7_0==10||LA7_0==25||LA7_0==27||LA7_0==29||LA7_0==63) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:359:2: temp_MControl= ruleMControl
            	    {
            	    if ( backtracking==0 ) {
            	      ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(5)));
            	    }
            	    pushFollow(FOLLOW_ruleMControl_in_ruleMComposite406);
            	    temp_MControl=ruleMControl();
            	    _fsp--;
            	    if (failed) return result;
            	    if ( backtracking==0 ) {
            	      if (temp_MControl != null) {
            	        hasContent = true;
            	        ptm.setModelElement(temp_MControl);
            	        factory.add(result,"children",convert(temp_MControl),false);
            	        ptm.ruleFinished(temp_MControl);
            	      } else {
            	        ptm.destroyNode();
            	      }

            	    }

            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:371:1: ( '}' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:371:2: '}'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,23,FOLLOW_23_in_ruleMComposite415); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(2)).eContents().get(1)).eContents().get(6)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 3, ruleMComposite_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMComposite


    // $ANTLR start ruleMColor
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:384:1: ruleMColor returns [EObject result] : ( ( RULE_INT ) ( ',' ) ( RULE_INT ) ( ',' ) ( RULE_INT ) ) ;
    public EObject ruleMColor() throws RecognitionException {
        EObject result = null;
        int ruleMColor_StartIndex = input.index();
        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 4) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:387:4: ( ( ( RULE_INT ) ( ',' ) ( RULE_INT ) ( ',' ) ( RULE_INT ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:387:4: ( ( RULE_INT ) ( ',' ) ( RULE_INT ) ( ',' ) ( RULE_INT ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MColor");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:390:1: ( ( RULE_INT ) ( ',' ) ( RULE_INT ) ( ',' ) ( RULE_INT ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:390:2: ( RULE_INT ) ( ',' ) ( RULE_INT ) ( ',' ) ( RULE_INT )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:390:2: ( RULE_INT )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:390:3: RULE_INT
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMColor454); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(3)).eContents().get(1)).eContents().get(0)));
                factory.set(result,"red",convert(temp),false);
                ptm.ruleFinished(temp);
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:400:1: ( ',' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:400:2: ','
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,24,FOLLOW_24_in_ruleMColor462); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(3)).eContents().get(1)).eContents().get(1)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:406:1: ( RULE_INT )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:406:2: RULE_INT
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMColor470); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(3)).eContents().get(1)).eContents().get(2)));
                factory.set(result,"green",convert(temp),false);
                ptm.ruleFinished(temp);
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:416:1: ( ',' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:416:2: ','
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,24,FOLLOW_24_in_ruleMColor478); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(3)).eContents().get(1)).eContents().get(3)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:422:1: ( RULE_INT )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:422:2: RULE_INT
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMColor486); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(3)).eContents().get(1)).eContents().get(4)));
                factory.set(result,"blue",convert(temp),false);
                ptm.ruleFinished(temp);
              }
            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 4, ruleMColor_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMColor


    // $ANTLR start ruleMControl
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:439:1: ruleMControl returns [EObject result] : (temp_mcomposite= ruleMComposite | temp_mbutton= ruleMButton | temp_mlabel= ruleMLabel | temp_mtext= ruleMText | temp_mcombo= ruleMCombo | temp_templateusage= ruleTemplateUsage );
    public EObject ruleMControl() throws RecognitionException {
        EObject result = null;
        int ruleMControl_StartIndex = input.index();
        EObject temp_mcomposite = null;

        EObject temp_mbutton = null;

        EObject temp_mlabel = null;

        EObject temp_mtext = null;

        EObject temp_mcombo = null;

        EObject temp_templateusage = null;


        try {
            if ( backtracking>0 && alreadyParsedRule(input, 5) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:441:9: (temp_mcomposite= ruleMComposite | temp_mbutton= ruleMButton | temp_mlabel= ruleMLabel | temp_mtext= ruleMText | temp_mcombo= ruleMCombo | temp_templateusage= ruleTemplateUsage )
            int alt8=6;
            switch ( input.LA(1) ) {
            case 10:
                {
                alt8=1;
                }
                break;
            case 25:
                {
                alt8=2;
                }
                break;
            case 27:
                {
                alt8=3;
                }
                break;
            case 29:
                {
                alt8=4;
                }
                break;
            case 63:
                {
                alt8=5;
                }
                break;
            case RULE_ID:
                {
                alt8=6;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return result;}
                NoViableAltException nvae =
                    new NoViableAltException("439:1: ruleMControl returns [EObject result] : (temp_mcomposite= ruleMComposite | temp_mbutton= ruleMButton | temp_mlabel= ruleMLabel | temp_mtext= ruleMText | temp_mcombo= ruleMCombo | temp_templateusage= ruleTemplateUsage );", 8, 0, input);

                throw nvae;
            }

            switch (alt8) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:441:9: temp_mcomposite= ruleMComposite
                    {
                    pushFollow(FOLLOW_ruleMComposite_in_ruleMControl522);
                    temp_mcomposite=ruleMComposite();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_mcomposite;
                    }

                    }
                    break;
                case 2 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:441:76: temp_mbutton= ruleMButton
                    {
                    pushFollow(FOLLOW_ruleMButton_in_ruleMControl537);
                    temp_mbutton=ruleMButton();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_mbutton;
                    }

                    }
                    break;
                case 3 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:441:134: temp_mlabel= ruleMLabel
                    {
                    pushFollow(FOLLOW_ruleMLabel_in_ruleMControl552);
                    temp_mlabel=ruleMLabel();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_mlabel;
                    }

                    }
                    break;
                case 4 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:441:189: temp_mtext= ruleMText
                    {
                    pushFollow(FOLLOW_ruleMText_in_ruleMControl567);
                    temp_mtext=ruleMText();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_mtext;
                    }

                    }
                    break;
                case 5 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:441:241: temp_mcombo= ruleMCombo
                    {
                    pushFollow(FOLLOW_ruleMCombo_in_ruleMControl582);
                    temp_mcombo=ruleMCombo();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_mcombo;
                    }

                    }
                    break;
                case 6 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:441:296: temp_templateusage= ruleTemplateUsage
                    {
                    pushFollow(FOLLOW_ruleTemplateUsage_in_ruleMControl597);
                    temp_templateusage=ruleTemplateUsage();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_templateusage;
                    }

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 5, ruleMControl_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMControl


    // $ANTLR start ruleMButton
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:443:1: ruleMButton returns [EObject result] : ( ( 'button' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) ( '}' ) ) ;
    public EObject ruleMButton() throws RecognitionException {
        EObject result = null;
        int ruleMButton_StartIndex = input.index();
        Enumerator temp_MSWT = null;

        EObject temp_MLayoutData = null;

        EObject temp_MColor = null;

        EObject temp_MFont = null;

        EObject temp_Parameter = null;

        EObject temp_MActionHandler = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 6) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:446:4: ( ( ( 'button' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) ( '}' ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:446:4: ( ( 'button' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) ( '}' ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MButton");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:449:1: ( ( 'button' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) ( '}' ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:449:2: ( 'button' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) ( '}' )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:449:2: ( 'button' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:449:3: 'button'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,25,FOLLOW_25_in_ruleMButton625); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:455:1: ( RULE_ID )?
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==RULE_ID) ) {
                alt9=1;
            }
            switch (alt9) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:455:2: RULE_ID
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMButton633); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(1)));
                        factory.set(result,"id",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:465:1: ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )?
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==11) ) {
                alt11=1;
            }
            switch (alt11) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:465:2: ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:465:2: ( '[' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:465:3: '['
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,11,FOLLOW_11_in_ruleMButton643); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:471:1: (temp_MSWT= ruleMSWT )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:471:2: temp_MSWT= ruleMSWT
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    }
                    pushFollow(FOLLOW_ruleMSWT_in_ruleMButton653);
                    temp_MSWT=ruleMSWT();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_MSWT != null) {
                        hasContent = true;
                        factory.add(result,"style",convert(temp_MSWT),false);
                        ptm.ruleFinished(temp_MSWT);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:482:1: ( ( '|' ) (temp_MSWT= ruleMSWT ) )*
                    loop10:
                    do {
                        int alt10=2;
                        int LA10_0 = input.LA(1);

                        if ( (LA10_0==12) ) {
                            alt10=1;
                        }


                        switch (alt10) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:482:2: ( '|' ) (temp_MSWT= ruleMSWT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:482:2: ( '|' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:482:3: '|'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,12,FOLLOW_12_in_ruleMButton662); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:488:1: (temp_MSWT= ruleMSWT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:488:2: temp_MSWT= ruleMSWT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(1)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMSWT_in_ruleMButton672);
                    	    temp_MSWT=ruleMSWT();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MSWT != null) {
                    	        hasContent = true;
                    	        factory.add(result,"style",convert(temp_MSWT),false);
                    	        ptm.ruleFinished(temp_MSWT);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop10;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:500:1: ( ']' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:500:2: ']'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,13,FOLLOW_13_in_ruleMButton683); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(2)).eContents().get(3)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:507:1: ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==14) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:507:2: ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:507:2: ( '(' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:507:3: '('
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,14,FOLLOW_14_in_ruleMButton694); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:513:1: ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )*
                    loop12:
                    do {
                        int alt12=5;
                        switch ( input.LA(1) ) {
                        case 17:
                            {
                            alt12=1;
                            }
                            break;
                        case 18:
                            {
                            alt12=2;
                            }
                            break;
                        case 19:
                            {
                            alt12=3;
                            }
                            break;
                        case 20:
                            {
                            alt12=4;
                            }
                            break;

                        }

                        switch (alt12) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:513:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:513:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:513:3: ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:513:3: ( 'layoutData' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:513:4: 'layoutData'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,17,FOLLOW_17_in_ruleMButton703); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:519:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:519:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMButton710); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:525:1: (temp_MLayoutData= ruleMLayoutData )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:525:2: temp_MLayoutData= ruleMLayoutData
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMLayoutData_in_ruleMButton720);
                    	    temp_MLayoutData=ruleMLayoutData();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MLayoutData != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MLayoutData);
                    	        factory.set(result,"layoutdata",convert(temp_MLayoutData),false);
                    	        ptm.ruleFinished(temp_MLayoutData);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:538:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:538:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:538:2: ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:538:2: ( 'bgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:538:3: 'bgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,18,FOLLOW_18_in_ruleMButton733); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:544:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:544:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMButton740); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:550:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:550:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMButton750);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"background",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 3 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:563:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:563:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:563:2: ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:563:2: ( 'fgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:563:3: 'fgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,19,FOLLOW_19_in_ruleMButton763); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:569:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:569:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMButton770); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:575:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:575:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMButton780);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"foreground",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 4 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:588:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:588:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:588:2: ( 'font' ) ( ':' ) (temp_MFont= ruleMFont )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:588:2: ( 'font' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:588:3: 'font'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,20,FOLLOW_20_in_ruleMButton793); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:594:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:594:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMButton800); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:600:1: (temp_MFont= ruleMFont )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:600:2: temp_MFont= ruleMFont
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMFont_in_ruleMButton810);
                    	    temp_MFont=ruleMFont();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MFont != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MFont);
                    	        factory.set(result,"font",convert(temp_MFont),false);
                    	        ptm.ruleFinished(temp_MFont);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop12;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:614:1: ( ')' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:614:2: ')'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,21,FOLLOW_21_in_ruleMButton823); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:621:1: ( '{' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:621:2: '{'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,22,FOLLOW_22_in_ruleMButton833); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(4)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:627:1: (temp_Parameter= ruleParameter )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:627:2: temp_Parameter= ruleParameter
            {
            if ( backtracking==0 ) {
              ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(5)));
            }
            pushFollow(FOLLOW_ruleParameter_in_ruleMButton843);
            temp_Parameter=ruleParameter();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              if (temp_Parameter != null) {
                hasContent = true;
                ptm.setModelElement(temp_Parameter);
                factory.set(result,"name",convert(temp_Parameter),false);
                ptm.ruleFinished(temp_Parameter);
              } else {
                ptm.destroyNode();
              }

            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:639:1: ( 'onClick' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:639:2: 'onClick'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,26,FOLLOW_26_in_ruleMButton851); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(6)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:645:1: ( ':' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:645:2: ':'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,16,FOLLOW_16_in_ruleMButton858); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(7)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:651:1: (temp_MActionHandler= ruleMActionHandler )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:651:2: temp_MActionHandler= ruleMActionHandler
            {
            if ( backtracking==0 ) {
              ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(8)));
            }
            pushFollow(FOLLOW_ruleMActionHandler_in_ruleMButton868);
            temp_MActionHandler=ruleMActionHandler();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              if (temp_MActionHandler != null) {
                hasContent = true;
                ptm.setModelElement(temp_MActionHandler);
                factory.set(result,"action",convert(temp_MActionHandler),false);
                ptm.ruleFinished(temp_MActionHandler);
              } else {
                ptm.destroyNode();
              }

            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:663:1: ( '}' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:663:2: '}'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,23,FOLLOW_23_in_ruleMButton876); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(5)).eContents().get(1)).eContents().get(9)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 6, ruleMButton_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMButton


    // $ANTLR start ruleMLabel
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:676:1: ruleMLabel returns [EObject result] : ( ( 'label' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) ) ;
    public EObject ruleMLabel() throws RecognitionException {
        EObject result = null;
        int ruleMLabel_StartIndex = input.index();
        Enumerator temp_MSWT = null;

        EObject temp_MLayoutData = null;

        EObject temp_MColor = null;

        EObject temp_MFont = null;

        EObject temp_Parameter = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 7) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:679:4: ( ( ( 'label' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:679:4: ( ( 'label' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MLabel");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:682:1: ( ( 'label' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:682:2: ( 'label' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( '}' )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:682:2: ( 'label' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:682:3: 'label'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,27,FOLLOW_27_in_ruleMLabel914); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:688:1: ( RULE_ID )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==RULE_ID) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:688:2: RULE_ID
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMLabel922); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(1)));
                        factory.set(result,"id",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:698:1: ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )?
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==11) ) {
                alt16=1;
            }
            switch (alt16) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:698:2: ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:698:2: ( '[' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:698:3: '['
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,11,FOLLOW_11_in_ruleMLabel932); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:704:1: (temp_MSWT= ruleMSWT )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:704:2: temp_MSWT= ruleMSWT
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    }
                    pushFollow(FOLLOW_ruleMSWT_in_ruleMLabel942);
                    temp_MSWT=ruleMSWT();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_MSWT != null) {
                        hasContent = true;
                        factory.add(result,"style",convert(temp_MSWT),false);
                        ptm.ruleFinished(temp_MSWT);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:715:1: ( ( '|' ) (temp_MSWT= ruleMSWT ) )*
                    loop15:
                    do {
                        int alt15=2;
                        int LA15_0 = input.LA(1);

                        if ( (LA15_0==12) ) {
                            alt15=1;
                        }


                        switch (alt15) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:715:2: ( '|' ) (temp_MSWT= ruleMSWT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:715:2: ( '|' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:715:3: '|'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,12,FOLLOW_12_in_ruleMLabel951); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:721:1: (temp_MSWT= ruleMSWT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:721:2: temp_MSWT= ruleMSWT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(1)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMSWT_in_ruleMLabel961);
                    	    temp_MSWT=ruleMSWT();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MSWT != null) {
                    	        hasContent = true;
                    	        factory.add(result,"style",convert(temp_MSWT),false);
                    	        ptm.ruleFinished(temp_MSWT);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop15;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:733:1: ( ']' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:733:2: ']'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,13,FOLLOW_13_in_ruleMLabel972); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(2)).eContents().get(3)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:740:1: ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )?
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( (LA18_0==14) ) {
                alt18=1;
            }
            switch (alt18) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:740:2: ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:740:2: ( '(' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:740:3: '('
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,14,FOLLOW_14_in_ruleMLabel983); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:746:1: ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )*
                    loop17:
                    do {
                        int alt17=5;
                        switch ( input.LA(1) ) {
                        case 17:
                            {
                            alt17=1;
                            }
                            break;
                        case 18:
                            {
                            alt17=2;
                            }
                            break;
                        case 19:
                            {
                            alt17=3;
                            }
                            break;
                        case 20:
                            {
                            alt17=4;
                            }
                            break;

                        }

                        switch (alt17) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:746:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:746:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:746:3: ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:746:3: ( 'layoutData' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:746:4: 'layoutData'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,17,FOLLOW_17_in_ruleMLabel992); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:752:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:752:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMLabel999); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:758:1: (temp_MLayoutData= ruleMLayoutData )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:758:2: temp_MLayoutData= ruleMLayoutData
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMLayoutData_in_ruleMLabel1009);
                    	    temp_MLayoutData=ruleMLayoutData();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MLayoutData != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MLayoutData);
                    	        factory.set(result,"layoutdata",convert(temp_MLayoutData),false);
                    	        ptm.ruleFinished(temp_MLayoutData);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:771:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:771:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:771:2: ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:771:2: ( 'bgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:771:3: 'bgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,18,FOLLOW_18_in_ruleMLabel1022); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:777:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:777:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMLabel1029); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:783:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:783:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMLabel1039);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"background",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 3 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:796:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:796:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:796:2: ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:796:2: ( 'fgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:796:3: 'fgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,19,FOLLOW_19_in_ruleMLabel1052); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:802:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:802:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMLabel1059); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:808:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:808:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMLabel1069);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"foreground",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 4 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:821:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:821:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:821:2: ( 'font' ) ( ':' ) (temp_MFont= ruleMFont )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:821:2: ( 'font' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:821:3: 'font'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,20,FOLLOW_20_in_ruleMLabel1082); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:827:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:827:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMLabel1089); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:833:1: (temp_MFont= ruleMFont )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:833:2: temp_MFont= ruleMFont
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMFont_in_ruleMLabel1099);
                    	    temp_MFont=ruleMFont();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MFont != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MFont);
                    	        factory.set(result,"font",convert(temp_MFont),false);
                    	        ptm.ruleFinished(temp_MFont);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop17;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:847:1: ( ')' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:847:2: ')'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,21,FOLLOW_21_in_ruleMLabel1112); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:854:1: ( '{' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:854:2: '{'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,22,FOLLOW_22_in_ruleMLabel1122); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(4)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:860:1: (temp_Parameter= ruleParameter )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:860:2: temp_Parameter= ruleParameter
            {
            if ( backtracking==0 ) {
              ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(5)));
            }
            pushFollow(FOLLOW_ruleParameter_in_ruleMLabel1132);
            temp_Parameter=ruleParameter();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              if (temp_Parameter != null) {
                hasContent = true;
                ptm.setModelElement(temp_Parameter);
                factory.set(result,"name",convert(temp_Parameter),false);
                ptm.ruleFinished(temp_Parameter);
              } else {
                ptm.destroyNode();
              }

            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:872:1: ( '}' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:872:2: '}'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,23,FOLLOW_23_in_ruleMLabel1140); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(6)).eContents().get(1)).eContents().get(6)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 7, ruleMLabel_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMLabel


    // $ANTLR start ruleParameter
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:885:1: ruleParameter returns [EObject result] : (temp_constant= ruleConstant | temp_variable= ruleVariable );
    public EObject ruleParameter() throws RecognitionException {
        EObject result = null;
        int ruleParameter_StartIndex = input.index();
        EObject temp_constant = null;

        EObject temp_variable = null;


        try {
            if ( backtracking>0 && alreadyParsedRule(input, 8) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:887:9: (temp_constant= ruleConstant | temp_variable= ruleVariable )
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==RULE_STRING) ) {
                alt19=1;
            }
            else if ( (LA19_0==RULE_ID) ) {
                alt19=2;
            }
            else {
                if (backtracking>0) {failed=true; return result;}
                NoViableAltException nvae =
                    new NoViableAltException("885:1: ruleParameter returns [EObject result] : (temp_constant= ruleConstant | temp_variable= ruleVariable );", 19, 0, input);

                throw nvae;
            }
            switch (alt19) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:887:9: temp_constant= ruleConstant
                    {
                    pushFollow(FOLLOW_ruleConstant_in_ruleParameter1175);
                    temp_constant=ruleConstant();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_constant;
                    }

                    }
                    break;
                case 2 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:887:70: temp_variable= ruleVariable
                    {
                    pushFollow(FOLLOW_ruleVariable_in_ruleParameter1190);
                    temp_variable=ruleVariable();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      result =temp_variable;
                    }

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 8, ruleParameter_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleParameter


    // $ANTLR start ruleConstant
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:889:1: ruleConstant returns [EObject result] : ( RULE_STRING ) ;
    public EObject ruleConstant() throws RecognitionException {
        EObject result = null;
        int ruleConstant_StartIndex = input.index();
        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 9) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:892:4: ( ( RULE_STRING ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:892:4: ( RULE_STRING )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "Constant");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:895:1: ( RULE_STRING )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:895:2: RULE_STRING
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleConstant1218); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(8)).eContents().get(1)));
                factory.set(result,"value",convert(temp),false);
                ptm.ruleFinished(temp);
              }
            }

            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 9, ruleConstant_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleConstant


    // $ANTLR start ruleVariable
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:911:1: ruleVariable returns [EObject result] : ( RULE_ID ) ;
    public EObject ruleVariable() throws RecognitionException {
        EObject result = null;
        int ruleVariable_StartIndex = input.index();
        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 10) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:914:4: ( ( RULE_ID ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:914:4: ( RULE_ID )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "Variable");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:917:1: ( RULE_ID )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:917:2: RULE_ID
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleVariable1255); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(9)).eContents().get(1)));
                factory.set(result,"value",convert(temp),false);
                ptm.ruleFinished(temp);
              }
            }

            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 10, ruleVariable_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleVariable


    // $ANTLR start ruleTemplate
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:933:1: ruleTemplate returns [EObject result] : ( ( 'template' ) ( RULE_ID ) ( '(' ) ( ( RULE_ID ) ( ( ',' ) ( RULE_ID ) )* )? ( ')' ) ( '{' ) (temp_MControl= ruleMControl )+ ( '}' ) ) ;
    public EObject ruleTemplate() throws RecognitionException {
        EObject result = null;
        int ruleTemplate_StartIndex = input.index();
        EObject temp_MControl = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 11) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:936:4: ( ( ( 'template' ) ( RULE_ID ) ( '(' ) ( ( RULE_ID ) ( ( ',' ) ( RULE_ID ) )* )? ( ')' ) ( '{' ) (temp_MControl= ruleMControl )+ ( '}' ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:936:4: ( ( 'template' ) ( RULE_ID ) ( '(' ) ( ( RULE_ID ) ( ( ',' ) ( RULE_ID ) )* )? ( ')' ) ( '{' ) (temp_MControl= ruleMControl )+ ( '}' ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "Template");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:939:1: ( ( 'template' ) ( RULE_ID ) ( '(' ) ( ( RULE_ID ) ( ( ',' ) ( RULE_ID ) )* )? ( ')' ) ( '{' ) (temp_MControl= ruleMControl )+ ( '}' ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:939:2: ( 'template' ) ( RULE_ID ) ( '(' ) ( ( RULE_ID ) ( ( ',' ) ( RULE_ID ) )* )? ( ')' ) ( '{' ) (temp_MControl= ruleMControl )+ ( '}' )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:939:2: ( 'template' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:939:3: 'template'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,28,FOLLOW_28_in_ruleTemplate1292); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:945:1: ( RULE_ID )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:945:2: RULE_ID
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTemplate1300); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(1)));
                factory.set(result,"name",convert(temp),false);
                ptm.ruleFinished(temp);
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:955:1: ( '(' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:955:2: '('
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,14,FOLLOW_14_in_ruleTemplate1308); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(2)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:961:1: ( ( RULE_ID ) ( ( ',' ) ( RULE_ID ) )* )?
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( (LA21_0==RULE_ID) ) {
                alt21=1;
            }
            switch (alt21) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:961:2: ( RULE_ID ) ( ( ',' ) ( RULE_ID ) )*
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:961:2: ( RULE_ID )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:961:3: RULE_ID
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTemplate1317); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                        factory.add(result,"variables",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:971:1: ( ( ',' ) ( RULE_ID ) )*
                    loop20:
                    do {
                        int alt20=2;
                        int LA20_0 = input.LA(1);

                        if ( (LA20_0==24) ) {
                            alt20=1;
                        }


                        switch (alt20) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:971:2: ( ',' ) ( RULE_ID )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:971:2: ( ',' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:971:3: ','
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,24,FOLLOW_24_in_ruleTemplate1326); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:977:1: ( RULE_ID )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:977:2: RULE_ID
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTemplate1334); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)));
                    	        factory.add(result,"variables",convert(temp),false);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop20;
                        }
                    } while (true);


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:989:1: ( ')' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:989:2: ')'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,21,FOLLOW_21_in_ruleTemplate1348); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(4)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:995:1: ( '{' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:995:2: '{'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,22,FOLLOW_22_in_ruleTemplate1355); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(5)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1001:1: (temp_MControl= ruleMControl )+
            int cnt22=0;
            loop22:
            do {
                int alt22=2;
                int LA22_0 = input.LA(1);

                if ( (LA22_0==RULE_ID||LA22_0==10||LA22_0==25||LA22_0==27||LA22_0==29||LA22_0==63) ) {
                    alt22=1;
                }


                switch (alt22) {
            	case 1 :
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1001:2: temp_MControl= ruleMControl
            	    {
            	    if ( backtracking==0 ) {
            	      ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(6)));
            	    }
            	    pushFollow(FOLLOW_ruleMControl_in_ruleTemplate1365);
            	    temp_MControl=ruleMControl();
            	    _fsp--;
            	    if (failed) return result;
            	    if ( backtracking==0 ) {
            	      if (temp_MControl != null) {
            	        hasContent = true;
            	        ptm.setModelElement(temp_MControl);
            	        factory.add(result,"widgets",convert(temp_MControl),false);
            	        ptm.ruleFinished(temp_MControl);
            	      } else {
            	        ptm.destroyNode();
            	      }

            	    }

            	    }
            	    break;

            	default :
            	    if ( cnt22 >= 1 ) break loop22;
            	    if (backtracking>0) {failed=true; return result;}
                        EarlyExitException eee =
                            new EarlyExitException(22, input);
                        throw eee;
                }
                cnt22++;
            } while (true);

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1013:1: ( '}' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1013:2: '}'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,23,FOLLOW_23_in_ruleTemplate1374); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(10)).eContents().get(1)).eContents().get(7)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 11, ruleTemplate_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleTemplate


    // $ANTLR start ruleTemplateUsage
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1026:1: ruleTemplateUsage returns [EObject result] : ( ( RULE_ID ) ( RULE_ID ) ( '(' ) ( ( RULE_STRING ) ( ( ',' ) ( RULE_STRING ) )* )? ( ')' ) ) ;
    public EObject ruleTemplateUsage() throws RecognitionException {
        EObject result = null;
        int ruleTemplateUsage_StartIndex = input.index();
        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 12) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1029:4: ( ( ( RULE_ID ) ( RULE_ID ) ( '(' ) ( ( RULE_STRING ) ( ( ',' ) ( RULE_STRING ) )* )? ( ')' ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1029:4: ( ( RULE_ID ) ( RULE_ID ) ( '(' ) ( ( RULE_STRING ) ( ( ',' ) ( RULE_STRING ) )* )? ( ')' ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "TemplateUsage");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1032:1: ( ( RULE_ID ) ( RULE_ID ) ( '(' ) ( ( RULE_STRING ) ( ( ',' ) ( RULE_STRING ) )* )? ( ')' ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1032:2: ( RULE_ID ) ( RULE_ID ) ( '(' ) ( ( RULE_STRING ) ( ( ',' ) ( RULE_STRING ) )* )? ( ')' )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1032:2: ( RULE_ID )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1032:3: RULE_ID
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTemplateUsage1413); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(11)).eContents().get(1)).eContents().get(0)));
                factory.set(result,"template",convert(temp),true);
                ptm.ruleFinished(temp);
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1043:1: ( RULE_ID )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1043:2: RULE_ID
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTemplateUsage1423); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(11)).eContents().get(1)).eContents().get(1)));
                factory.set(result,"id",convert(temp),false);
                ptm.ruleFinished(temp);
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1053:1: ( '(' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1053:2: '('
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,14,FOLLOW_14_in_ruleTemplateUsage1431); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(11)).eContents().get(1)).eContents().get(2)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1059:1: ( ( RULE_STRING ) ( ( ',' ) ( RULE_STRING ) )* )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==RULE_STRING) ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1059:2: ( RULE_STRING ) ( ( ',' ) ( RULE_STRING ) )*
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1059:2: ( RULE_STRING )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1059:3: RULE_STRING
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTemplateUsage1440); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(11)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                        factory.add(result,"parameters",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1069:1: ( ( ',' ) ( RULE_STRING ) )*
                    loop23:
                    do {
                        int alt23=2;
                        int LA23_0 = input.LA(1);

                        if ( (LA23_0==24) ) {
                            alt23=1;
                        }


                        switch (alt23) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1069:2: ( ',' ) ( RULE_STRING )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1069:2: ( ',' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1069:3: ','
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,24,FOLLOW_24_in_ruleTemplateUsage1449); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(11)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1075:1: ( RULE_STRING )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1075:2: RULE_STRING
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTemplateUsage1457); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(11)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)));
                    	        factory.add(result,"parameters",convert(temp),false);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop23;
                        }
                    } while (true);


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1087:1: ( ')' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1087:2: ')'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,21,FOLLOW_21_in_ruleTemplateUsage1471); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(11)).eContents().get(1)).eContents().get(4)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 12, ruleTemplateUsage_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleTemplateUsage


    // $ANTLR start ruleMText
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1100:1: ruleMText returns [EObject result] : ( ( 'text' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )? ) ;
    public EObject ruleMText() throws RecognitionException {
        EObject result = null;
        int ruleMText_StartIndex = input.index();
        Enumerator temp_MSWT = null;

        EObject temp_MLayoutData = null;

        EObject temp_MColor = null;

        EObject temp_MFont = null;

        EObject temp_Parameter = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 13) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1103:4: ( ( ( 'text' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )? ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1103:4: ( ( 'text' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )? )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MText");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1106:1: ( ( 'text' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )? )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1106:2: ( 'text' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )?
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1106:2: ( 'text' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1106:3: 'text'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,29,FOLLOW_29_in_ruleMText1509); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1112:1: ( RULE_ID )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==RULE_ID) ) {
                int LA25_1 = input.LA(2);

                if ( (LA25_1==RULE_ID) ) {
                    int LA25_3 = input.LA(3);

                    if ( (LA25_3==RULE_ID) ) {
                        alt25=1;
                    }
                }
                else if ( (LA25_1==EOF||(LA25_1>=10 && LA25_1<=11)||LA25_1==14||(LA25_1>=22 && LA25_1<=23)||LA25_1==25||LA25_1==27||LA25_1==29||LA25_1==63) ) {
                    alt25=1;
                }
            }
            switch (alt25) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1112:2: RULE_ID
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMText1517); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(1)));
                        factory.set(result,"id",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1122:1: ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==11) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1122:2: ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1122:2: ( '[' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1122:3: '['
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,11,FOLLOW_11_in_ruleMText1527); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1128:1: (temp_MSWT= ruleMSWT )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1128:2: temp_MSWT= ruleMSWT
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    }
                    pushFollow(FOLLOW_ruleMSWT_in_ruleMText1537);
                    temp_MSWT=ruleMSWT();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_MSWT != null) {
                        hasContent = true;
                        factory.add(result,"style",convert(temp_MSWT),false);
                        ptm.ruleFinished(temp_MSWT);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1139:1: ( ( '|' ) (temp_MSWT= ruleMSWT ) )*
                    loop26:
                    do {
                        int alt26=2;
                        int LA26_0 = input.LA(1);

                        if ( (LA26_0==12) ) {
                            alt26=1;
                        }


                        switch (alt26) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1139:2: ( '|' ) (temp_MSWT= ruleMSWT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1139:2: ( '|' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1139:3: '|'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,12,FOLLOW_12_in_ruleMText1546); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1145:1: (temp_MSWT= ruleMSWT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1145:2: temp_MSWT= ruleMSWT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(1)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMSWT_in_ruleMText1556);
                    	    temp_MSWT=ruleMSWT();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MSWT != null) {
                    	        hasContent = true;
                    	        factory.add(result,"style",convert(temp_MSWT),false);
                    	        ptm.ruleFinished(temp_MSWT);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop26;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1157:1: ( ']' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1157:2: ']'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,13,FOLLOW_13_in_ruleMText1567); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(2)).eContents().get(3)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1164:1: ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )?
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==14) ) {
                alt29=1;
            }
            switch (alt29) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1164:2: ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1164:2: ( '(' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1164:3: '('
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,14,FOLLOW_14_in_ruleMText1578); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1170:1: ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )*
                    loop28:
                    do {
                        int alt28=5;
                        switch ( input.LA(1) ) {
                        case 17:
                            {
                            alt28=1;
                            }
                            break;
                        case 18:
                            {
                            alt28=2;
                            }
                            break;
                        case 19:
                            {
                            alt28=3;
                            }
                            break;
                        case 20:
                            {
                            alt28=4;
                            }
                            break;

                        }

                        switch (alt28) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1170:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1170:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1170:3: ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1170:3: ( 'layoutData' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1170:4: 'layoutData'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,17,FOLLOW_17_in_ruleMText1587); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1176:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1176:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMText1594); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1182:1: (temp_MLayoutData= ruleMLayoutData )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1182:2: temp_MLayoutData= ruleMLayoutData
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMLayoutData_in_ruleMText1604);
                    	    temp_MLayoutData=ruleMLayoutData();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MLayoutData != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MLayoutData);
                    	        factory.set(result,"layoutdata",convert(temp_MLayoutData),false);
                    	        ptm.ruleFinished(temp_MLayoutData);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1195:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1195:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1195:2: ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1195:2: ( 'bgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1195:3: 'bgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,18,FOLLOW_18_in_ruleMText1617); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1201:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1201:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMText1624); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1207:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1207:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMText1634);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"background",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 3 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1220:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1220:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1220:2: ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1220:2: ( 'fgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1220:3: 'fgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,19,FOLLOW_19_in_ruleMText1647); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1226:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1226:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMText1654); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1232:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1232:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMText1664);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"foreground",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 4 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1245:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1245:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1245:2: ( 'font' ) ( ':' ) (temp_MFont= ruleMFont )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1245:2: ( 'font' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1245:3: 'font'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,20,FOLLOW_20_in_ruleMText1677); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1251:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1251:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMText1684); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1257:1: (temp_MFont= ruleMFont )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1257:2: temp_MFont= ruleMFont
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMFont_in_ruleMText1694);
                    	    temp_MFont=ruleMFont();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MFont != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MFont);
                    	        factory.set(result,"font",convert(temp_MFont),false);
                    	        ptm.ruleFinished(temp_MFont);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop28;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1271:1: ( ')' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1271:2: ')'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,21,FOLLOW_21_in_ruleMText1707); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1278:1: ( ( '{' ) (temp_Parameter= ruleParameter ) ( '}' ) )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==22) ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1278:2: ( '{' ) (temp_Parameter= ruleParameter ) ( '}' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1278:2: ( '{' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1278:3: '{'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,22,FOLLOW_22_in_ruleMText1718); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(4)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1284:1: (temp_Parameter= ruleParameter )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1284:2: temp_Parameter= ruleParameter
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(4)).eContents().get(1)));
                    }
                    pushFollow(FOLLOW_ruleParameter_in_ruleMText1728);
                    temp_Parameter=ruleParameter();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_Parameter != null) {
                        hasContent = true;
                        ptm.setModelElement(temp_Parameter);
                        factory.set(result,"value",convert(temp_Parameter),false);
                        ptm.ruleFinished(temp_Parameter);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1296:1: ( '}' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1296:2: '}'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,23,FOLLOW_23_in_ruleMText1736); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(12)).eContents().get(1)).eContents().get(4)).eContents().get(2)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 13, ruleMText_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMText


    // $ANTLR start ruleMLayout
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1310:1: ruleMLayout returns [EObject result] : temp_mgridlayout= ruleMGridLayout ;
    public EObject ruleMLayout() throws RecognitionException {
        EObject result = null;
        int ruleMLayout_StartIndex = input.index();
        EObject temp_mgridlayout = null;


        try {
            if ( backtracking>0 && alreadyParsedRule(input, 14) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1312:9: (temp_mgridlayout= ruleMGridLayout )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1312:9: temp_mgridlayout= ruleMGridLayout
            {
            pushFollow(FOLLOW_ruleMGridLayout_in_ruleMLayout1774);
            temp_mgridlayout=ruleMGridLayout();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              result =temp_mgridlayout;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 14, ruleMLayout_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMLayout


    // $ANTLR start ruleMLayoutData
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1314:1: ruleMLayoutData returns [EObject result] : temp_mgriddata= ruleMGridData ;
    public EObject ruleMLayoutData() throws RecognitionException {
        EObject result = null;
        int ruleMLayoutData_StartIndex = input.index();
        EObject temp_mgriddata = null;


        try {
            if ( backtracking>0 && alreadyParsedRule(input, 15) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1316:9: (temp_mgriddata= ruleMGridData )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1316:9: temp_mgriddata= ruleMGridData
            {
            pushFollow(FOLLOW_ruleMGridData_in_ruleMLayoutData1799);
            temp_mgriddata=ruleMGridData();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              result =temp_mgriddata;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 15, ruleMLayoutData_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMLayoutData


    // $ANTLR start ruleMGridLayout
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1318:1: ruleMGridLayout returns [EObject result] : ( ( 'gridLayout' ) ( ( '(' ) ( RULE_INT )? ( 'equalWidth' )? ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )? ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )? ( ')' ) )? ) ;
    public EObject ruleMGridLayout() throws RecognitionException {
        EObject result = null;
        int ruleMGridLayout_StartIndex = input.index();
        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 16) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1321:4: ( ( ( 'gridLayout' ) ( ( '(' ) ( RULE_INT )? ( 'equalWidth' )? ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )? ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )? ( ')' ) )? ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1321:4: ( ( 'gridLayout' ) ( ( '(' ) ( RULE_INT )? ( 'equalWidth' )? ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )? ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )? ( ')' ) )? )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MGridLayout");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1324:1: ( ( 'gridLayout' ) ( ( '(' ) ( RULE_INT )? ( 'equalWidth' )? ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )? ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )? ( ')' ) )? )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1324:2: ( 'gridLayout' ) ( ( '(' ) ( RULE_INT )? ( 'equalWidth' )? ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )? ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )? ( ')' ) )?
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1324:2: ( 'gridLayout' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1324:3: 'gridLayout'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,30,FOLLOW_30_in_ruleMGridLayout1827); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1330:1: ( ( '(' ) ( RULE_INT )? ( 'equalWidth' )? ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )? ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )? ( ')' ) )?
            int alt35=2;
            int LA35_0 = input.LA(1);

            if ( (LA35_0==14) ) {
                alt35=1;
            }
            switch (alt35) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1330:2: ( '(' ) ( RULE_INT )? ( 'equalWidth' )? ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )? ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )? ( ')' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1330:2: ( '(' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1330:3: '('
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,14,FOLLOW_14_in_ruleMGridLayout1835); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1336:1: ( RULE_INT )?
                    int alt31=2;
                    int LA31_0 = input.LA(1);

                    if ( (LA31_0==RULE_INT) ) {
                        alt31=1;
                    }
                    switch (alt31) {
                        case 1 :
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1336:2: RULE_INT
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMGridLayout1843); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                Token temp = getLastToken();
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                                factory.set(result,"numColumns",convert(temp),false);
                                ptm.ruleFinished(temp);
                              }
                            }

                            }
                            break;

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1346:1: ( 'equalWidth' )?
                    int alt32=2;
                    int LA32_0 = input.LA(1);

                    if ( (LA32_0==31) ) {
                        alt32=1;
                    }
                    switch (alt32) {
                        case 1 :
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1346:2: 'equalWidth'
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,31,FOLLOW_31_in_ruleMGridLayout1853); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                Token temp = getLastToken();
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(2)));
                                factory.set(result,"makeColumnsEqualWidth",true);
                                ptm.ruleFinished(temp);
                              }
                            }

                            }
                            break;

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1356:1: ( ( 'wMargin' ) ( '=' ) ( RULE_INT ) )?
                    int alt33=2;
                    int LA33_0 = input.LA(1);

                    if ( (LA33_0==32) ) {
                        alt33=1;
                    }
                    switch (alt33) {
                        case 1 :
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1356:2: ( 'wMargin' ) ( '=' ) ( RULE_INT )
                            {
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1356:2: ( 'wMargin' )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1356:3: 'wMargin'
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,32,FOLLOW_32_in_ruleMGridLayout1863); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                                ptm.ruleFinished(getLastToken());
                              }
                            }

                            }

                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1362:1: ( '=' )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1362:2: '='
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,33,FOLLOW_33_in_ruleMGridLayout1870); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(3)).eContents().get(1)));
                                ptm.ruleFinished(getLastToken());
                              }
                            }

                            }

                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1368:1: ( RULE_INT )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1368:2: RULE_INT
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMGridLayout1878); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                Token temp = getLastToken();
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                                factory.set(result,"marginWidth",convert(temp),false);
                                ptm.ruleFinished(temp);
                              }
                            }

                            }


                            }
                            break;

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1379:1: ( ( 'hMargin' ) ( '=' ) ( RULE_INT ) )?
                    int alt34=2;
                    int LA34_0 = input.LA(1);

                    if ( (LA34_0==34) ) {
                        alt34=1;
                    }
                    switch (alt34) {
                        case 1 :
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1379:2: ( 'hMargin' ) ( '=' ) ( RULE_INT )
                            {
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1379:2: ( 'hMargin' )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1379:3: 'hMargin'
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,34,FOLLOW_34_in_ruleMGridLayout1890); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(4)).eContents().get(0)));
                                ptm.ruleFinished(getLastToken());
                              }
                            }

                            }

                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1385:1: ( '=' )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1385:2: '='
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,33,FOLLOW_33_in_ruleMGridLayout1897); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(4)).eContents().get(1)));
                                ptm.ruleFinished(getLastToken());
                              }
                            }

                            }

                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1391:1: ( RULE_INT )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1391:2: RULE_INT
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMGridLayout1905); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                Token temp = getLastToken();
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(4)).eContents().get(2)));
                                factory.set(result,"marginHeight",convert(temp),false);
                                ptm.ruleFinished(temp);
                              }
                            }

                            }


                            }
                            break;

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1402:1: ( ')' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1402:2: ')'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,21,FOLLOW_21_in_ruleMGridLayout1916); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(15)).eContents().get(1)).eContents().get(1)).eContents().get(5)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 16, ruleMGridLayout_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMGridLayout


    // $ANTLR start ruleMGridData
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1416:1: ruleMGridData returns [EObject result] : ( ( 'gridData' ) ( ( '(' ) ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )? ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )* ( ')' ) )? ) ;
    public EObject ruleMGridData() throws RecognitionException {
        EObject result = null;
        int ruleMGridData_StartIndex = input.index();
        Enumerator temp_MSWT = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 17) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1419:4: ( ( ( 'gridData' ) ( ( '(' ) ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )? ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )* ( ')' ) )? ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1419:4: ( ( 'gridData' ) ( ( '(' ) ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )? ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )* ( ')' ) )? )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MGridData");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1422:1: ( ( 'gridData' ) ( ( '(' ) ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )? ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )* ( ')' ) )? )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1422:2: ( 'gridData' ) ( ( '(' ) ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )? ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )* ( ')' ) )?
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1422:2: ( 'gridData' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1422:3: 'gridData'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,35,FOLLOW_35_in_ruleMGridData1957); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1428:1: ( ( '(' ) ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )? ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )* ( ')' ) )?
            int alt38=2;
            int LA38_0 = input.LA(1);

            if ( (LA38_0==14) ) {
                alt38=1;
            }
            switch (alt38) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1428:2: ( '(' ) ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )? ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )* ( ')' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1428:2: ( '(' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1428:3: '('
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,14,FOLLOW_14_in_ruleMGridData1965); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1434:1: ( (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT ) )?
                    int alt36=2;
                    int LA36_0 = input.LA(1);

                    if ( ((LA36_0>=42 && LA36_0<=59)) ) {
                        alt36=1;
                    }
                    switch (alt36) {
                        case 1 :
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1434:2: (temp_MSWT= ruleMSWT ) ( ',' ) (temp_MSWT= ruleMSWT )
                            {
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1434:2: (temp_MSWT= ruleMSWT )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1434:3: temp_MSWT= ruleMSWT
                            {
                            if ( backtracking==0 ) {
                              ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                            }
                            pushFollow(FOLLOW_ruleMSWT_in_ruleMGridData1976);
                            temp_MSWT=ruleMSWT();
                            _fsp--;
                            if (failed) return result;
                            if ( backtracking==0 ) {
                              if (temp_MSWT != null) {
                                hasContent = true;
                                factory.set(result,"horizontalAlignment",convert(temp_MSWT),false);
                                ptm.ruleFinished(temp_MSWT);
                              } else {
                                ptm.destroyNode();
                              }

                            }

                            }

                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1445:1: ( ',' )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1445:2: ','
                            {
                            if ( backtracking==0 ) {
                              skipCurrentToken = false;
                            }
                            match(input,24,FOLLOW_24_in_ruleMGridData1984); if (failed) return result;
                            if ( backtracking==0 ) {
                              if (!skipCurrentToken) {
                                hasContent = true;
                                ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                                ptm.ruleFinished(getLastToken());
                              }
                            }

                            }

                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1451:1: (temp_MSWT= ruleMSWT )
                            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1451:2: temp_MSWT= ruleMSWT
                            {
                            if ( backtracking==0 ) {
                              ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(1)).eContents().get(2)));
                            }
                            pushFollow(FOLLOW_ruleMSWT_in_ruleMGridData1994);
                            temp_MSWT=ruleMSWT();
                            _fsp--;
                            if (failed) return result;
                            if ( backtracking==0 ) {
                              if (temp_MSWT != null) {
                                hasContent = true;
                                factory.set(result,"verticalAlignment",convert(temp_MSWT),false);
                                ptm.ruleFinished(temp_MSWT);
                              } else {
                                ptm.destroyNode();
                              }

                            }

                            }


                            }
                            break;

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1463:1: ( ( ( 'wHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hHint' ) ( '=' ) ( RULE_INT ) ) | ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) ) | ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) ) | ( 'grabHSpace' ) | ( 'grabVSpace' ) )*
                    loop37:
                    do {
                        int alt37=7;
                        switch ( input.LA(1) ) {
                        case 36:
                            {
                            alt37=1;
                            }
                            break;
                        case 37:
                            {
                            alt37=2;
                            }
                            break;
                        case 38:
                            {
                            alt37=3;
                            }
                            break;
                        case 39:
                            {
                            alt37=4;
                            }
                            break;
                        case 40:
                            {
                            alt37=5;
                            }
                            break;
                        case 41:
                            {
                            alt37=6;
                            }
                            break;

                        }

                        switch (alt37) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1463:2: ( ( 'wHint' ) ( '=' ) ( RULE_INT ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1463:2: ( ( 'wHint' ) ( '=' ) ( RULE_INT ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1463:3: ( 'wHint' ) ( '=' ) ( RULE_INT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1463:3: ( 'wHint' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1463:4: 'wHint'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,36,FOLLOW_36_in_ruleMGridData2007); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(0)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1469:1: ( '=' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1469:2: '='
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,33,FOLLOW_33_in_ruleMGridData2014); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(0)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1475:1: ( RULE_INT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1475:2: RULE_INT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMGridData2022); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(0)).eContents().get(2)));
                    	        factory.set(result,"widthHint",convert(temp),false);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1486:1: ( ( 'hHint' ) ( '=' ) ( RULE_INT ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1486:1: ( ( 'hHint' ) ( '=' ) ( RULE_INT ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1486:2: ( 'hHint' ) ( '=' ) ( RULE_INT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1486:2: ( 'hHint' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1486:3: 'hHint'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,37,FOLLOW_37_in_ruleMGridData2035); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1492:1: ( '=' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1492:2: '='
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,33,FOLLOW_33_in_ruleMGridData2042); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(1)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1498:1: ( RULE_INT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1498:2: RULE_INT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMGridData2050); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(1)).eContents().get(2)));
                    	        factory.set(result,"heightHint",convert(temp),false);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 3 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1509:1: ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1509:1: ( ( 'hSpan' ) ( '=' ) ( RULE_INT ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1509:2: ( 'hSpan' ) ( '=' ) ( RULE_INT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1509:2: ( 'hSpan' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1509:3: 'hSpan'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,38,FOLLOW_38_in_ruleMGridData2063); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1515:1: ( '=' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1515:2: '='
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,33,FOLLOW_33_in_ruleMGridData2070); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1521:1: ( RULE_INT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1521:2: RULE_INT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMGridData2078); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(2)));
                    	        factory.set(result,"horizontalSpan",convert(temp),false);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 4 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1532:1: ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1532:1: ( ( 'vSpan' ) ( '=' ) ( RULE_INT ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1532:2: ( 'vSpan' ) ( '=' ) ( RULE_INT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1532:2: ( 'vSpan' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1532:3: 'vSpan'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,39,FOLLOW_39_in_ruleMGridData2091); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(3)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1538:1: ( '=' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1538:2: '='
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,33,FOLLOW_33_in_ruleMGridData2098); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(3)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1544:1: ( RULE_INT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1544:2: RULE_INT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMGridData2106); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(3)).eContents().get(2)));
                    	        factory.set(result,"verticalSpan",convert(temp),false);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 5 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1555:1: ( 'grabHSpace' )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1555:1: ( 'grabHSpace' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1555:2: 'grabHSpace'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,40,FOLLOW_40_in_ruleMGridData2119); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(4)));
                    	        factory.set(result,"grabExcessHorizontalSpace",true);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }
                    	    break;
                    	case 6 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1565:1: ( 'grabVSpace' )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1565:1: ( 'grabVSpace' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1565:2: 'grabVSpace'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,41,FOLLOW_41_in_ruleMGridData2130); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        Token temp = getLastToken();
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(2)).eContents().get(5)));
                    	        factory.set(result,"grabExcessVerticalSpace",true);
                    	        ptm.ruleFinished(temp);
                    	      }
                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop37;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1576:1: ( ')' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1576:2: ')'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,21,FOLLOW_21_in_ruleMGridData2141); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(16)).eContents().get(1)).eContents().get(1)).eContents().get(3)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 17, ruleMGridData_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMGridData


    // $ANTLR start ruleMSWT
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1590:1: ruleMSWT returns [Enumerator r] : ( 'beginning' | 'center' | 'end' | 'fill' | 'default' | 'border' | 'single' | 'multi' | 'check' | 'radio' | 'push' | 'toggle' | 'password' | 'readOnly' | 'separator' | 'bold' | 'italic' | 'normal' );
    public Enumerator ruleMSWT() throws RecognitionException {
        Enumerator r = null;
        int ruleMSWT_StartIndex = input.index();
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 18) ) { return r; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1591:4: ( 'beginning' | 'center' | 'end' | 'fill' | 'default' | 'border' | 'single' | 'multi' | 'check' | 'radio' | 'push' | 'toggle' | 'password' | 'readOnly' | 'separator' | 'bold' | 'italic' | 'normal' )
            int alt39=18;
            switch ( input.LA(1) ) {
            case 42:
                {
                alt39=1;
                }
                break;
            case 43:
                {
                alt39=2;
                }
                break;
            case 44:
                {
                alt39=3;
                }
                break;
            case 45:
                {
                alt39=4;
                }
                break;
            case 46:
                {
                alt39=5;
                }
                break;
            case 47:
                {
                alt39=6;
                }
                break;
            case 48:
                {
                alt39=7;
                }
                break;
            case 49:
                {
                alt39=8;
                }
                break;
            case 50:
                {
                alt39=9;
                }
                break;
            case 51:
                {
                alt39=10;
                }
                break;
            case 52:
                {
                alt39=11;
                }
                break;
            case 53:
                {
                alt39=12;
                }
                break;
            case 54:
                {
                alt39=13;
                }
                break;
            case 55:
                {
                alt39=14;
                }
                break;
            case 56:
                {
                alt39=15;
                }
                break;
            case 57:
                {
                alt39=16;
                }
                break;
            case 58:
                {
                alt39=17;
                }
                break;
            case 59:
                {
                alt39=18;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return r;}
                NoViableAltException nvae =
                    new NoViableAltException("1590:1: ruleMSWT returns [Enumerator r] : ( 'beginning' | 'center' | 'end' | 'fill' | 'default' | 'border' | 'single' | 'multi' | 'check' | 'radio' | 'push' | 'toggle' | 'password' | 'readOnly' | 'separator' | 'bold' | 'italic' | 'normal' );", 39, 0, input);

                throw nvae;
            }

            switch (alt39) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1591:4: 'beginning'
                    {
                    match(input,42,FOLLOW_42_in_ruleMSWT2172); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(1)));
                      r =factory.enumLit("", "MSWT","BEGINNING");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 2 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1597:7: 'center'
                    {
                    match(input,43,FOLLOW_43_in_ruleMSWT2185); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(2)));
                      r =factory.enumLit("", "MSWT","CENTER");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 3 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1603:7: 'end'
                    {
                    match(input,44,FOLLOW_44_in_ruleMSWT2198); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(3)));
                      r =factory.enumLit("", "MSWT","END");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 4 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1609:7: 'fill'
                    {
                    match(input,45,FOLLOW_45_in_ruleMSWT2211); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(4)));
                      r =factory.enumLit("", "MSWT","FILL");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 5 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1615:7: 'default'
                    {
                    match(input,46,FOLLOW_46_in_ruleMSWT2224); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(5)));
                      r =factory.enumLit("", "MSWT","DEFAULT");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 6 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1621:7: 'border'
                    {
                    match(input,47,FOLLOW_47_in_ruleMSWT2237); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(6)));
                      r =factory.enumLit("", "MSWT","BORDER");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 7 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1627:7: 'single'
                    {
                    match(input,48,FOLLOW_48_in_ruleMSWT2250); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(7)));
                      r =factory.enumLit("", "MSWT","SINGLE");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 8 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1633:7: 'multi'
                    {
                    match(input,49,FOLLOW_49_in_ruleMSWT2263); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(8)));
                      r =factory.enumLit("", "MSWT","MULTI");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 9 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1639:7: 'check'
                    {
                    match(input,50,FOLLOW_50_in_ruleMSWT2276); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(9)));
                      r =factory.enumLit("", "MSWT","CHECK");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 10 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1645:7: 'radio'
                    {
                    match(input,51,FOLLOW_51_in_ruleMSWT2289); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(10)));
                      r =factory.enumLit("", "MSWT","RADIO");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 11 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1651:7: 'push'
                    {
                    match(input,52,FOLLOW_52_in_ruleMSWT2302); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(11)));
                      r =factory.enumLit("", "MSWT","PUSH");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 12 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1657:7: 'toggle'
                    {
                    match(input,53,FOLLOW_53_in_ruleMSWT2315); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(12)));
                      r =factory.enumLit("", "MSWT","TOGGLE");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 13 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1663:7: 'password'
                    {
                    match(input,54,FOLLOW_54_in_ruleMSWT2328); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(13)));
                      r =factory.enumLit("", "MSWT","PASSWORD");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 14 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1669:7: 'readOnly'
                    {
                    match(input,55,FOLLOW_55_in_ruleMSWT2341); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(14)));
                      r =factory.enumLit("", "MSWT","READ_ONLY");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 15 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1675:7: 'separator'
                    {
                    match(input,56,FOLLOW_56_in_ruleMSWT2354); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(15)));
                      r =factory.enumLit("", "MSWT","SEPARATOR");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 16 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1681:7: 'bold'
                    {
                    match(input,57,FOLLOW_57_in_ruleMSWT2367); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(16)));
                      r =factory.enumLit("", "MSWT","BOLD");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 17 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1687:7: 'italic'
                    {
                    match(input,58,FOLLOW_58_in_ruleMSWT2380); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(17)));
                      r =factory.enumLit("", "MSWT","ITALIC");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;
                case 18 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1693:7: 'normal'
                    {
                    match(input,59,FOLLOW_59_in_ruleMSWT2393); if (failed) return r;
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)xtextfile.eContents().get(17)).eContents().get(18)));
                      r =factory.enumLit("", "MSWT","NORMAL");
                      ptm.setModelElement(r);
                      ptm.ruleFinished(getLastToken());

                    }

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 18, ruleMSWT_StartIndex); }
        }
        return r;
    }
    // $ANTLR end ruleMSWT


    // $ANTLR start ruleMActionHandler
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1701:1: ruleMActionHandler returns [EObject result] : ( ( 'bundle' ) ( '=' ) (temp_QID= ruleQID ) ( 'class' ) ( '=' ) (temp_QID= ruleQID ) ) ;
    public EObject ruleMActionHandler() throws RecognitionException {
        EObject result = null;
        int ruleMActionHandler_StartIndex = input.index();
        String temp_QID = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 19) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1704:4: ( ( ( 'bundle' ) ( '=' ) (temp_QID= ruleQID ) ( 'class' ) ( '=' ) (temp_QID= ruleQID ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1704:4: ( ( 'bundle' ) ( '=' ) (temp_QID= ruleQID ) ( 'class' ) ( '=' ) (temp_QID= ruleQID ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MActionHandler");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1707:1: ( ( 'bundle' ) ( '=' ) (temp_QID= ruleQID ) ( 'class' ) ( '=' ) (temp_QID= ruleQID ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1707:2: ( 'bundle' ) ( '=' ) (temp_QID= ruleQID ) ( 'class' ) ( '=' ) (temp_QID= ruleQID )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1707:2: ( 'bundle' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1707:3: 'bundle'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,60,FOLLOW_60_in_ruleMActionHandler2424); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(18)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1713:1: ( '=' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1713:2: '='
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,33,FOLLOW_33_in_ruleMActionHandler2431); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(18)).eContents().get(1)).eContents().get(1)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1719:1: (temp_QID= ruleQID )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1719:2: temp_QID= ruleQID
            {
            if ( backtracking==0 ) {
              ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(18)).eContents().get(1)).eContents().get(2)));
            }
            pushFollow(FOLLOW_ruleQID_in_ruleMActionHandler2441);
            temp_QID=ruleQID();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              if (temp_QID != null) {
                hasContent = true;
                factory.set(result,"bundleName",convert(temp_QID),false);
                ptm.ruleFinished(temp_QID);
              } else {
                ptm.destroyNode();
              }

            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1730:1: ( 'class' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1730:2: 'class'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,61,FOLLOW_61_in_ruleMActionHandler2449); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(18)).eContents().get(1)).eContents().get(3)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1736:1: ( '=' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1736:2: '='
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,33,FOLLOW_33_in_ruleMActionHandler2456); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(18)).eContents().get(1)).eContents().get(4)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1742:1: (temp_QID= ruleQID )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1742:2: temp_QID= ruleQID
            {
            if ( backtracking==0 ) {
              ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(18)).eContents().get(1)).eContents().get(5)));
            }
            pushFollow(FOLLOW_ruleQID_in_ruleMActionHandler2466);
            temp_QID=ruleQID();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              if (temp_QID != null) {
                hasContent = true;
                factory.set(result,"class",convert(temp_QID),false);
                ptm.ruleFinished(temp_QID);
              } else {
                ptm.destroyNode();
              }

            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 19, ruleMActionHandler_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMActionHandler


    // $ANTLR start ruleQID
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1760:1: ruleQID returns [String s] : ( ( ( RULE_ID ) ( ( ( '.' ) ( RULE_ID ) ) )* ) ) ;
    public String ruleQID() throws RecognitionException {
        String s = null;
        int ruleQID_StartIndex = input.index();
        StringBuffer buff = new StringBuffer(); boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 20) ) { return s; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:1: ( ( ( ( RULE_ID ) ( ( ( '.' ) ( RULE_ID ) ) )* ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:1: ( ( ( RULE_ID ) ( ( ( '.' ) ( RULE_ID ) ) )* ) )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:1: ( ( ( RULE_ID ) ( ( ( '.' ) ( RULE_ID ) ) )* ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:2: ( ( RULE_ID ) ( ( ( '.' ) ( RULE_ID ) ) )* )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:2: ( ( RULE_ID ) ( ( ( '.' ) ( RULE_ID ) ) )* )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:3: ( RULE_ID ) ( ( ( '.' ) ( RULE_ID ) ) )*
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:3: ( RULE_ID )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1763:4: RULE_ID
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleQID2506); if (failed) return s;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                Token temp = getLastToken();
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(19)).eContents().get(0)).eContents().get(0)));
                ptm.ruleFinished(temp);
                if (temp.getType() == swtLexer.RULE_ID)
                  temp.setText((String) convert(temp));
                buff.append(temp.getText());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1774:1: ( ( ( '.' ) ( RULE_ID ) ) )*
            loop40:
            do {
                int alt40=2;
                int LA40_0 = input.LA(1);

                if ( (LA40_0==62) ) {
                    alt40=1;
                }


                switch (alt40) {
            	case 1 :
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1774:2: ( ( '.' ) ( RULE_ID ) )
            	    {
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1774:2: ( ( '.' ) ( RULE_ID ) )
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1774:3: ( '.' ) ( RULE_ID )
            	    {
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1774:3: ( '.' )
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1774:5: '.'
            	    {
            	    if ( backtracking==0 ) {
            	      skipCurrentToken = false;
            	    }
            	    match(input,62,FOLLOW_62_in_ruleQID2517); if (failed) return s;
            	    if ( backtracking==0 ) {
            	      if (!skipCurrentToken) {
            	        hasContent = true;
            	        Token temp = getLastToken();
            	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(19)).eContents().get(0)).eContents().get(1)).eContents().get(0)));
            	        ptm.ruleFinished(temp);
            	        buff.append(temp.getText());
            	      }
            	    }

            	    }

            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1782:1: ( RULE_ID )
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1782:2: RULE_ID
            	    {
            	    if ( backtracking==0 ) {
            	      skipCurrentToken = false;
            	    }
            	    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleQID2526); if (failed) return s;
            	    if ( backtracking==0 ) {
            	      if (!skipCurrentToken) {
            	        hasContent = true;
            	        Token temp = getLastToken();
            	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(19)).eContents().get(0)).eContents().get(1)).eContents().get(1)));
            	        ptm.ruleFinished(temp);
            	        if (temp.getType() == swtLexer.RULE_ID)
            	          temp.setText((String) convert(temp));
            	        buff.append(temp.getText());
            	      }
            	    }

            	    }


            	    }


            	    }
            	    break;

            	default :
            	    break loop40;
                }
            } while (true);


            }


            }

            if ( backtracking==0 ) {
              if (hasContent)
                s =buff.toString();
            }

            }

        }
        catch (RecognitionException re) {
            if (hasContent)
            s =buff.toString();
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 20, ruleQID_StartIndex); }
        }
        return s;
    }
    // $ANTLR end ruleQID


    // $ANTLR start ruleMCombo
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1804:1: ruleMCombo returns [EObject result] : ( ( 'combo' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( ( '|' ) (temp_Parameter= ruleParameter ) )* ( ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) )? ( '}' ) ) ;
    public EObject ruleMCombo() throws RecognitionException {
        EObject result = null;
        int ruleMCombo_StartIndex = input.index();
        Enumerator temp_MSWT = null;

        EObject temp_MLayoutData = null;

        EObject temp_MColor = null;

        EObject temp_MFont = null;

        EObject temp_Parameter = null;

        EObject temp_MActionHandler = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 21) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1807:4: ( ( ( 'combo' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( ( '|' ) (temp_Parameter= ruleParameter ) )* ( ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) )? ( '}' ) ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1807:4: ( ( 'combo' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( ( '|' ) (temp_Parameter= ruleParameter ) )* ( ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) )? ( '}' ) )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MCombo");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1810:1: ( ( 'combo' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( ( '|' ) (temp_Parameter= ruleParameter ) )* ( ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) )? ( '}' ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1810:2: ( 'combo' ) ( RULE_ID )? ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )? ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )? ( '{' ) (temp_Parameter= ruleParameter ) ( ( '|' ) (temp_Parameter= ruleParameter ) )* ( ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) )? ( '}' )
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1810:2: ( 'combo' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1810:3: 'combo'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,63,FOLLOW_63_in_ruleMCombo2571); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(0)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1816:1: ( RULE_ID )?
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==RULE_ID) ) {
                alt41=1;
            }
            switch (alt41) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1816:2: RULE_ID
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMCombo2579); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(1)));
                        factory.set(result,"id",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1826:1: ( ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' ) )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==11) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1826:2: ( '[' ) (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* ( ']' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1826:2: ( '[' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1826:3: '['
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,11,FOLLOW_11_in_ruleMCombo2589); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1832:1: (temp_MSWT= ruleMSWT )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1832:2: temp_MSWT= ruleMSWT
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    }
                    pushFollow(FOLLOW_ruleMSWT_in_ruleMCombo2599);
                    temp_MSWT=ruleMSWT();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_MSWT != null) {
                        hasContent = true;
                        factory.add(result,"style",convert(temp_MSWT),false);
                        ptm.ruleFinished(temp_MSWT);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1843:1: ( ( '|' ) (temp_MSWT= ruleMSWT ) )*
                    loop42:
                    do {
                        int alt42=2;
                        int LA42_0 = input.LA(1);

                        if ( (LA42_0==12) ) {
                            alt42=1;
                        }


                        switch (alt42) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1843:2: ( '|' ) (temp_MSWT= ruleMSWT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1843:2: ( '|' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1843:3: '|'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,12,FOLLOW_12_in_ruleMCombo2608); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1849:1: (temp_MSWT= ruleMSWT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1849:2: temp_MSWT= ruleMSWT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(2)).eContents().get(2)).eContents().get(1)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMSWT_in_ruleMCombo2618);
                    	    temp_MSWT=ruleMSWT();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MSWT != null) {
                    	        hasContent = true;
                    	        factory.add(result,"style",convert(temp_MSWT),false);
                    	        ptm.ruleFinished(temp_MSWT);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop42;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1861:1: ( ']' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1861:2: ']'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,13,FOLLOW_13_in_ruleMCombo2629); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(2)).eContents().get(3)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1868:1: ( ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' ) )?
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==14) ) {
                alt45=1;
            }
            switch (alt45) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1868:2: ( '(' ) ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )* ( ')' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1868:2: ( '(' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1868:3: '('
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,14,FOLLOW_14_in_ruleMCombo2640); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1874:1: ( ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) ) | ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) ) | ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) ) )*
                    loop44:
                    do {
                        int alt44=5;
                        switch ( input.LA(1) ) {
                        case 17:
                            {
                            alt44=1;
                            }
                            break;
                        case 18:
                            {
                            alt44=2;
                            }
                            break;
                        case 19:
                            {
                            alt44=3;
                            }
                            break;
                        case 20:
                            {
                            alt44=4;
                            }
                            break;

                        }

                        switch (alt44) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1874:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1874:2: ( ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1874:3: ( 'layoutData' ) ( ':' ) (temp_MLayoutData= ruleMLayoutData )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1874:3: ( 'layoutData' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1874:4: 'layoutData'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,17,FOLLOW_17_in_ruleMCombo2649); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1880:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1880:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMCombo2656); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1886:1: (temp_MLayoutData= ruleMLayoutData )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1886:2: temp_MLayoutData= ruleMLayoutData
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(0)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMLayoutData_in_ruleMCombo2666);
                    	    temp_MLayoutData=ruleMLayoutData();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MLayoutData != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MLayoutData);
                    	        factory.set(result,"layoutdata",convert(temp_MLayoutData),false);
                    	        ptm.ruleFinished(temp_MLayoutData);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 2 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1899:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1899:1: ( ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1899:2: ( 'bgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1899:2: ( 'bgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1899:3: 'bgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,18,FOLLOW_18_in_ruleMCombo2679); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1905:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1905:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMCombo2686); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1911:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1911:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(1)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMCombo2696);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"background",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 3 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1924:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1924:1: ( ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1924:2: ( 'fgColor' ) ( ':' ) (temp_MColor= ruleMColor )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1924:2: ( 'fgColor' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1924:3: 'fgColor'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,19,FOLLOW_19_in_ruleMCombo2709); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1930:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1930:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMCombo2716); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1936:1: (temp_MColor= ruleMColor )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1936:2: temp_MColor= ruleMColor
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(2)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMColor_in_ruleMCombo2726);
                    	    temp_MColor=ruleMColor();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MColor != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MColor);
                    	        factory.set(result,"foreground",convert(temp_MColor),false);
                    	        ptm.ruleFinished(temp_MColor);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;
                    	case 4 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1949:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1949:1: ( ( 'font' ) ( ':' ) (temp_MFont= ruleMFont ) )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1949:2: ( 'font' ) ( ':' ) (temp_MFont= ruleMFont )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1949:2: ( 'font' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1949:3: 'font'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,20,FOLLOW_20_in_ruleMCombo2739); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1955:1: ( ':' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1955:2: ':'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,16,FOLLOW_16_in_ruleMCombo2746); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(1)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1961:1: (temp_MFont= ruleMFont )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1961:2: temp_MFont= ruleMFont
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMFont_in_ruleMCombo2756);
                    	    temp_MFont=ruleMFont();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MFont != null) {
                    	        hasContent = true;
                    	        ptm.setModelElement(temp_MFont);
                    	        factory.set(result,"font",convert(temp_MFont),false);
                    	        ptm.ruleFinished(temp_MFont);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop44;
                        }
                    } while (true);

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1975:1: ( ')' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1975:2: ')'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,21,FOLLOW_21_in_ruleMCombo2769); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(3)).eContents().get(2)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1982:1: ( '{' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1982:2: '{'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,22,FOLLOW_22_in_ruleMCombo2779); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(4)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1988:1: (temp_Parameter= ruleParameter )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:1988:2: temp_Parameter= ruleParameter
            {
            if ( backtracking==0 ) {
              ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(5)));
            }
            pushFollow(FOLLOW_ruleParameter_in_ruleMCombo2789);
            temp_Parameter=ruleParameter();
            _fsp--;
            if (failed) return result;
            if ( backtracking==0 ) {
              if (temp_Parameter != null) {
                hasContent = true;
                ptm.setModelElement(temp_Parameter);
                factory.add(result,"values",convert(temp_Parameter),false);
                ptm.ruleFinished(temp_Parameter);
              } else {
                ptm.destroyNode();
              }

            }

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2000:1: ( ( '|' ) (temp_Parameter= ruleParameter ) )*
            loop46:
            do {
                int alt46=2;
                int LA46_0 = input.LA(1);

                if ( (LA46_0==12) ) {
                    alt46=1;
                }


                switch (alt46) {
            	case 1 :
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2000:2: ( '|' ) (temp_Parameter= ruleParameter )
            	    {
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2000:2: ( '|' )
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2000:3: '|'
            	    {
            	    if ( backtracking==0 ) {
            	      skipCurrentToken = false;
            	    }
            	    match(input,12,FOLLOW_12_in_ruleMCombo2798); if (failed) return result;
            	    if ( backtracking==0 ) {
            	      if (!skipCurrentToken) {
            	        hasContent = true;
            	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(6)).eContents().get(0)));
            	        ptm.ruleFinished(getLastToken());
            	      }
            	    }

            	    }

            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2006:1: (temp_Parameter= ruleParameter )
            	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2006:2: temp_Parameter= ruleParameter
            	    {
            	    if ( backtracking==0 ) {
            	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(6)).eContents().get(1)));
            	    }
            	    pushFollow(FOLLOW_ruleParameter_in_ruleMCombo2808);
            	    temp_Parameter=ruleParameter();
            	    _fsp--;
            	    if (failed) return result;
            	    if ( backtracking==0 ) {
            	      if (temp_Parameter != null) {
            	        hasContent = true;
            	        ptm.setModelElement(temp_Parameter);
            	        factory.add(result,"values",convert(temp_Parameter),false);
            	        ptm.ruleFinished(temp_Parameter);
            	      } else {
            	        ptm.destroyNode();
            	      }

            	    }

            	    }


            	    }
            	    break;

            	default :
            	    break loop46;
                }
            } while (true);

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2019:1: ( ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler ) )?
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( (LA47_0==26) ) {
                alt47=1;
            }
            switch (alt47) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2019:2: ( 'onClick' ) ( ':' ) (temp_MActionHandler= ruleMActionHandler )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2019:2: ( 'onClick' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2019:3: 'onClick'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,26,FOLLOW_26_in_ruleMCombo2820); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(7)).eContents().get(0)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2025:1: ( ':' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2025:2: ':'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,16,FOLLOW_16_in_ruleMCombo2827); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(7)).eContents().get(1)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2031:1: (temp_MActionHandler= ruleMActionHandler )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2031:2: temp_MActionHandler= ruleMActionHandler
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(7)).eContents().get(2)));
                    }
                    pushFollow(FOLLOW_ruleMActionHandler_in_ruleMCombo2837);
                    temp_MActionHandler=ruleMActionHandler();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_MActionHandler != null) {
                        hasContent = true;
                        ptm.setModelElement(temp_MActionHandler);
                        factory.set(result,"action",convert(temp_MActionHandler),false);
                        ptm.ruleFinished(temp_MActionHandler);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2044:1: ( '}' )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2044:2: '}'
            {
            if ( backtracking==0 ) {
              skipCurrentToken = false;
            }
            match(input,23,FOLLOW_23_in_ruleMCombo2848); if (failed) return result;
            if ( backtracking==0 ) {
              if (!skipCurrentToken) {
                hasContent = true;
                ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(20)).eContents().get(1)).eContents().get(8)));
                ptm.ruleFinished(getLastToken());
              }
            }

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 21, ruleMCombo_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMCombo


    // $ANTLR start ruleMFont
    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2057:1: ruleMFont returns [EObject result] : ( ( RULE_STRING )? ( ( RULE_INT ) ( 'px' ) )? ( (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* )? ) ;
    public EObject ruleMFont() throws RecognitionException {
        EObject result = null;
        int ruleMFont_StartIndex = input.index();
        Enumerator temp_MSWT = null;


        boolean hasContent = false;
        try {
            if ( backtracking>0 && alreadyParsedRule(input, 22) ) { return result; }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2060:4: ( ( ( RULE_STRING )? ( ( RULE_INT ) ( 'px' ) )? ( (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* )? ) )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2060:4: ( ( RULE_STRING )? ( ( RULE_INT ) ( 'px' ) )? ( (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* )? )
            {
            if ( backtracking==0 ) {

              				result = factory.create("", "MFont");
              			 
            }
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2063:1: ( ( RULE_STRING )? ( ( RULE_INT ) ( 'px' ) )? ( (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* )? )
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2063:2: ( RULE_STRING )? ( ( RULE_INT ) ( 'px' ) )? ( (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* )?
            {
            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2063:2: ( RULE_STRING )?
            int alt48=2;
            int LA48_0 = input.LA(1);

            if ( (LA48_0==RULE_STRING) ) {
                alt48=1;
            }
            switch (alt48) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2063:3: RULE_STRING
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleMFont2887); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)xtextfile.eContents().get(21)).eContents().get(1)).eContents().get(0)));
                        factory.set(result,"name",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2073:1: ( ( RULE_INT ) ( 'px' ) )?
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( (LA49_0==RULE_INT) ) {
                alt49=1;
            }
            switch (alt49) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2073:2: ( RULE_INT ) ( 'px' )
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2073:2: ( RULE_INT )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2073:3: RULE_INT
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMFont2898); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        Token temp = getLastToken();
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(21)).eContents().get(1)).eContents().get(1)).eContents().get(0)));
                        factory.set(result,"height",convert(temp),false);
                        ptm.ruleFinished(temp);
                      }
                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2083:1: ( 'px' )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2083:2: 'px'
                    {
                    if ( backtracking==0 ) {
                      skipCurrentToken = false;
                    }
                    match(input,64,FOLLOW_64_in_ruleMFont2906); if (failed) return result;
                    if ( backtracking==0 ) {
                      if (!skipCurrentToken) {
                        hasContent = true;
                        ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(21)).eContents().get(1)).eContents().get(1)).eContents().get(1)));
                        ptm.ruleFinished(getLastToken());
                      }
                    }

                    }


                    }
                    break;

            }

            // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2090:1: ( (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )* )?
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( ((LA51_0>=42 && LA51_0<=59)) ) {
                alt51=1;
            }
            switch (alt51) {
                case 1 :
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2090:2: (temp_MSWT= ruleMSWT ) ( ( '|' ) (temp_MSWT= ruleMSWT ) )*
                    {
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2090:2: (temp_MSWT= ruleMSWT )
                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2090:3: temp_MSWT= ruleMSWT
                    {
                    if ( backtracking==0 ) {
                      ptm.createNode(((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(21)).eContents().get(1)).eContents().get(2)).eContents().get(0)));
                    }
                    pushFollow(FOLLOW_ruleMSWT_in_ruleMFont2920);
                    temp_MSWT=ruleMSWT();
                    _fsp--;
                    if (failed) return result;
                    if ( backtracking==0 ) {
                      if (temp_MSWT != null) {
                        hasContent = true;
                        factory.add(result,"style",convert(temp_MSWT),false);
                        ptm.ruleFinished(temp_MSWT);
                      } else {
                        ptm.destroyNode();
                      }

                    }

                    }

                    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2101:1: ( ( '|' ) (temp_MSWT= ruleMSWT ) )*
                    loop50:
                    do {
                        int alt50=2;
                        int LA50_0 = input.LA(1);

                        if ( (LA50_0==12) ) {
                            alt50=1;
                        }


                        switch (alt50) {
                    	case 1 :
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2101:2: ( '|' ) (temp_MSWT= ruleMSWT )
                    	    {
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2101:2: ( '|' )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2101:3: '|'
                    	    {
                    	    if ( backtracking==0 ) {
                    	      skipCurrentToken = false;
                    	    }
                    	    match(input,12,FOLLOW_12_in_ruleMFont2929); if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (!skipCurrentToken) {
                    	        hasContent = true;
                    	        ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(21)).eContents().get(1)).eContents().get(2)).eContents().get(1)).eContents().get(0)));
                    	        ptm.ruleFinished(getLastToken());
                    	      }
                    	    }

                    	    }

                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2107:1: (temp_MSWT= ruleMSWT )
                    	    // ..//org.eclipsecon.dui.dsl.swt/src-gen/org/eclipsecon/dui/dsl/swt/parser/swt.g:2107:2: temp_MSWT= ruleMSWT
                    	    {
                    	    if ( backtracking==0 ) {
                    	      ptm.createNode(((EObject)((EObject)((EObject)((EObject)((EObject)xtextfile.eContents().get(21)).eContents().get(1)).eContents().get(2)).eContents().get(1)).eContents().get(1)));
                    	    }
                    	    pushFollow(FOLLOW_ruleMSWT_in_ruleMFont2939);
                    	    temp_MSWT=ruleMSWT();
                    	    _fsp--;
                    	    if (failed) return result;
                    	    if ( backtracking==0 ) {
                    	      if (temp_MSWT != null) {
                    	        hasContent = true;
                    	        factory.add(result,"style",convert(temp_MSWT),false);
                    	        ptm.ruleFinished(temp_MSWT);
                    	      } else {
                    	        ptm.destroyNode();
                    	      }

                    	    }

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop50;
                        }
                    } while (true);


                    }
                    break;

            }


            }

            if ( backtracking==0 ) {
              if (!hasContent)
                result = null;
            }

            }

        }
        catch (RecognitionException re) {
            if (!hasContent)
                result = null;
            reportError(re);
            recover(input,re);
        }
        finally {
            if ( backtracking>0 ) { memoize(input, 22, ruleMFont_StartIndex); }
        }
        return result;
    }
    // $ANTLR end ruleMFont


 

    public static final BitSet FOLLOW_ruleMModel_in_parse67 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_parse78 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMComposite_in_ruleMModel107 = new BitSet(new long[]{0x0000000010000002L});
    public static final BitSet FOLLOW_ruleTemplate_in_ruleMModel118 = new BitSet(new long[]{0x0000000010000002L});
    public static final BitSet FOLLOW_10_in_ruleMComposite158 = new BitSet(new long[]{0x0000000000404810L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMComposite166 = new BitSet(new long[]{0x0000000000404800L});
    public static final BitSet FOLLOW_11_in_ruleMComposite176 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMComposite186 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_12_in_ruleMComposite195 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMComposite205 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_13_in_ruleMComposite216 = new BitSet(new long[]{0x0000000000404000L});
    public static final BitSet FOLLOW_14_in_ruleMComposite227 = new BitSet(new long[]{0x00000000003E8000L});
    public static final BitSet FOLLOW_15_in_ruleMComposite236 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMComposite243 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_ruleMLayout_in_ruleMComposite253 = new BitSet(new long[]{0x00000000003E8000L});
    public static final BitSet FOLLOW_17_in_ruleMComposite266 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMComposite273 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_ruleMLayoutData_in_ruleMComposite283 = new BitSet(new long[]{0x00000000003E8000L});
    public static final BitSet FOLLOW_18_in_ruleMComposite296 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMComposite303 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMComposite313 = new BitSet(new long[]{0x00000000003E8000L});
    public static final BitSet FOLLOW_19_in_ruleMComposite326 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMComposite333 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMComposite343 = new BitSet(new long[]{0x00000000003E8000L});
    public static final BitSet FOLLOW_20_in_ruleMComposite356 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMComposite363 = new BitSet(new long[]{0x0FFFFC00003E8060L});
    public static final BitSet FOLLOW_ruleMFont_in_ruleMComposite373 = new BitSet(new long[]{0x00000000003E8000L});
    public static final BitSet FOLLOW_21_in_ruleMComposite386 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleMComposite396 = new BitSet(new long[]{0x800000002A800410L});
    public static final BitSet FOLLOW_ruleMControl_in_ruleMComposite406 = new BitSet(new long[]{0x800000002A800410L});
    public static final BitSet FOLLOW_23_in_ruleMComposite415 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMColor454 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_24_in_ruleMColor462 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMColor470 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_24_in_ruleMColor478 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMColor486 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMComposite_in_ruleMControl522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMButton_in_ruleMControl537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMLabel_in_ruleMControl552 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMText_in_ruleMControl567 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMCombo_in_ruleMControl582 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTemplateUsage_in_ruleMControl597 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_ruleMButton625 = new BitSet(new long[]{0x0000000000404810L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMButton633 = new BitSet(new long[]{0x0000000000404800L});
    public static final BitSet FOLLOW_11_in_ruleMButton643 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMButton653 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_12_in_ruleMButton662 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMButton672 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_13_in_ruleMButton683 = new BitSet(new long[]{0x0000000000404000L});
    public static final BitSet FOLLOW_14_in_ruleMButton694 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_17_in_ruleMButton703 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMButton710 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_ruleMLayoutData_in_ruleMButton720 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_18_in_ruleMButton733 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMButton740 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMButton750 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_19_in_ruleMButton763 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMButton770 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMButton780 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_20_in_ruleMButton793 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMButton800 = new BitSet(new long[]{0x0FFFFC00003E0060L});
    public static final BitSet FOLLOW_ruleMFont_in_ruleMButton810 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_21_in_ruleMButton823 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleMButton833 = new BitSet(new long[]{0x0000000000000050L});
    public static final BitSet FOLLOW_ruleParameter_in_ruleMButton843 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_26_in_ruleMButton851 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMButton858 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_ruleMActionHandler_in_ruleMButton868 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_23_in_ruleMButton876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_ruleMLabel914 = new BitSet(new long[]{0x0000000000404810L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMLabel922 = new BitSet(new long[]{0x0000000000404800L});
    public static final BitSet FOLLOW_11_in_ruleMLabel932 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMLabel942 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_12_in_ruleMLabel951 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMLabel961 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_13_in_ruleMLabel972 = new BitSet(new long[]{0x0000000000404000L});
    public static final BitSet FOLLOW_14_in_ruleMLabel983 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_17_in_ruleMLabel992 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMLabel999 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_ruleMLayoutData_in_ruleMLabel1009 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_18_in_ruleMLabel1022 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMLabel1029 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMLabel1039 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_19_in_ruleMLabel1052 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMLabel1059 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMLabel1069 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_20_in_ruleMLabel1082 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMLabel1089 = new BitSet(new long[]{0x0FFFFC00003E0060L});
    public static final BitSet FOLLOW_ruleMFont_in_ruleMLabel1099 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_21_in_ruleMLabel1112 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleMLabel1122 = new BitSet(new long[]{0x0000000000000050L});
    public static final BitSet FOLLOW_ruleParameter_in_ruleMLabel1132 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_23_in_ruleMLabel1140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConstant_in_ruleParameter1175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleVariable_in_ruleParameter1190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleConstant1218 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleVariable1255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_ruleTemplate1292 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTemplate1300 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleTemplate1308 = new BitSet(new long[]{0x0000000000200010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTemplate1317 = new BitSet(new long[]{0x0000000001200000L});
    public static final BitSet FOLLOW_24_in_ruleTemplate1326 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTemplate1334 = new BitSet(new long[]{0x0000000001200000L});
    public static final BitSet FOLLOW_21_in_ruleTemplate1348 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleTemplate1355 = new BitSet(new long[]{0x800000002A000410L});
    public static final BitSet FOLLOW_ruleMControl_in_ruleTemplate1365 = new BitSet(new long[]{0x800000002A800410L});
    public static final BitSet FOLLOW_23_in_ruleTemplate1374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTemplateUsage1413 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTemplateUsage1423 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleTemplateUsage1431 = new BitSet(new long[]{0x0000000000200040L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleTemplateUsage1440 = new BitSet(new long[]{0x0000000001200000L});
    public static final BitSet FOLLOW_24_in_ruleTemplateUsage1449 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleTemplateUsage1457 = new BitSet(new long[]{0x0000000001200000L});
    public static final BitSet FOLLOW_21_in_ruleTemplateUsage1471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_ruleMText1509 = new BitSet(new long[]{0x0000000000404812L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMText1517 = new BitSet(new long[]{0x0000000000404802L});
    public static final BitSet FOLLOW_11_in_ruleMText1527 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMText1537 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_12_in_ruleMText1546 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMText1556 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_13_in_ruleMText1567 = new BitSet(new long[]{0x0000000000404002L});
    public static final BitSet FOLLOW_14_in_ruleMText1578 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_17_in_ruleMText1587 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMText1594 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_ruleMLayoutData_in_ruleMText1604 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_18_in_ruleMText1617 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMText1624 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMText1634 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_19_in_ruleMText1647 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMText1654 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMText1664 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_20_in_ruleMText1677 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMText1684 = new BitSet(new long[]{0x0FFFFC00003E0060L});
    public static final BitSet FOLLOW_ruleMFont_in_ruleMText1694 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_21_in_ruleMText1707 = new BitSet(new long[]{0x0000000000400002L});
    public static final BitSet FOLLOW_22_in_ruleMText1718 = new BitSet(new long[]{0x0000000000000050L});
    public static final BitSet FOLLOW_ruleParameter_in_ruleMText1728 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_23_in_ruleMText1736 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMGridLayout_in_ruleMLayout1774 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMGridData_in_ruleMLayoutData1799 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_ruleMGridLayout1827 = new BitSet(new long[]{0x0000000000004002L});
    public static final BitSet FOLLOW_14_in_ruleMGridLayout1835 = new BitSet(new long[]{0x0000000580200020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMGridLayout1843 = new BitSet(new long[]{0x0000000580200000L});
    public static final BitSet FOLLOW_31_in_ruleMGridLayout1853 = new BitSet(new long[]{0x0000000500200000L});
    public static final BitSet FOLLOW_32_in_ruleMGridLayout1863 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMGridLayout1870 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMGridLayout1878 = new BitSet(new long[]{0x0000000400200000L});
    public static final BitSet FOLLOW_34_in_ruleMGridLayout1890 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMGridLayout1897 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMGridLayout1905 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_21_in_ruleMGridLayout1916 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_ruleMGridData1957 = new BitSet(new long[]{0x0000000000004002L});
    public static final BitSet FOLLOW_14_in_ruleMGridData1965 = new BitSet(new long[]{0x0FFFFFF000200000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMGridData1976 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_24_in_ruleMGridData1984 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMGridData1994 = new BitSet(new long[]{0x000003F000200000L});
    public static final BitSet FOLLOW_36_in_ruleMGridData2007 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMGridData2014 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMGridData2022 = new BitSet(new long[]{0x000003F000200000L});
    public static final BitSet FOLLOW_37_in_ruleMGridData2035 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMGridData2042 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMGridData2050 = new BitSet(new long[]{0x000003F000200000L});
    public static final BitSet FOLLOW_38_in_ruleMGridData2063 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMGridData2070 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMGridData2078 = new BitSet(new long[]{0x000003F000200000L});
    public static final BitSet FOLLOW_39_in_ruleMGridData2091 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMGridData2098 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMGridData2106 = new BitSet(new long[]{0x000003F000200000L});
    public static final BitSet FOLLOW_40_in_ruleMGridData2119 = new BitSet(new long[]{0x000003F000200000L});
    public static final BitSet FOLLOW_41_in_ruleMGridData2130 = new BitSet(new long[]{0x000003F000200000L});
    public static final BitSet FOLLOW_21_in_ruleMGridData2141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_ruleMSWT2172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_ruleMSWT2185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_ruleMSWT2198 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_ruleMSWT2211 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleMSWT2224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_ruleMSWT2237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_ruleMSWT2250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_ruleMSWT2263 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_ruleMSWT2276 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_ruleMSWT2289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_ruleMSWT2302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_ruleMSWT2315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_ruleMSWT2328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_ruleMSWT2341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_ruleMSWT2354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_ruleMSWT2367 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_ruleMSWT2380 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_ruleMSWT2393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_60_in_ruleMActionHandler2424 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMActionHandler2431 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQID_in_ruleMActionHandler2441 = new BitSet(new long[]{0x2000000000000000L});
    public static final BitSet FOLLOW_61_in_ruleMActionHandler2449 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_33_in_ruleMActionHandler2456 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_ruleQID_in_ruleMActionHandler2466 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleQID2506 = new BitSet(new long[]{0x4000000000000002L});
    public static final BitSet FOLLOW_62_in_ruleQID2517 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleQID2526 = new BitSet(new long[]{0x4000000000000002L});
    public static final BitSet FOLLOW_63_in_ruleMCombo2571 = new BitSet(new long[]{0x0000000000404810L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMCombo2579 = new BitSet(new long[]{0x0000000000404800L});
    public static final BitSet FOLLOW_11_in_ruleMCombo2589 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMCombo2599 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_12_in_ruleMCombo2608 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMCombo2618 = new BitSet(new long[]{0x0000000000003000L});
    public static final BitSet FOLLOW_13_in_ruleMCombo2629 = new BitSet(new long[]{0x0000000000404000L});
    public static final BitSet FOLLOW_14_in_ruleMCombo2640 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_17_in_ruleMCombo2649 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMCombo2656 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_ruleMLayoutData_in_ruleMCombo2666 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_18_in_ruleMCombo2679 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMCombo2686 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMCombo2696 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_19_in_ruleMCombo2709 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMCombo2716 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_ruleMColor_in_ruleMCombo2726 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_20_in_ruleMCombo2739 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMCombo2746 = new BitSet(new long[]{0x0FFFFC00003E0060L});
    public static final BitSet FOLLOW_ruleMFont_in_ruleMCombo2756 = new BitSet(new long[]{0x00000000003E0000L});
    public static final BitSet FOLLOW_21_in_ruleMCombo2769 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleMCombo2779 = new BitSet(new long[]{0x0000000000000050L});
    public static final BitSet FOLLOW_ruleParameter_in_ruleMCombo2789 = new BitSet(new long[]{0x0000000004801000L});
    public static final BitSet FOLLOW_12_in_ruleMCombo2798 = new BitSet(new long[]{0x0000000000000050L});
    public static final BitSet FOLLOW_ruleParameter_in_ruleMCombo2808 = new BitSet(new long[]{0x0000000004801000L});
    public static final BitSet FOLLOW_26_in_ruleMCombo2820 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleMCombo2827 = new BitSet(new long[]{0x1000000000000000L});
    public static final BitSet FOLLOW_ruleMActionHandler_in_ruleMCombo2837 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_23_in_ruleMCombo2848 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleMFont2887 = new BitSet(new long[]{0x0FFFFC0000000022L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMFont2898 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_64_in_ruleMFont2906 = new BitSet(new long[]{0x0FFFFC0000000002L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMFont2920 = new BitSet(new long[]{0x0000000000001002L});
    public static final BitSet FOLLOW_12_in_ruleMFont2929 = new BitSet(new long[]{0x0FFFFC0000000000L});
    public static final BitSet FOLLOW_ruleMSWT_in_ruleMFont2939 = new BitSet(new long[]{0x0000000000001002L});

}